跳至主要内容

API 參考

upgradeOasTo32(input, options?)​

將 Swagger 2.0 或 OpenAPI 3.x 文件升級為 OpenAPI 3.2。

參數型別必填說明
inputOpenApiDocument | string是以一般物件或 JSON/YAML 字串表示的 Swagger 2.0 或 OpenAPI 3.x 文件
optionsUpgradeOptions否選用設定

回傳: Promise<Oas32Document> — 經過驗證的 OpenAPI 3.2 文件。

拋出: OpenApiUpgradeError — 請參閱 錯誤碼.

UpgradeOptions​

屬性型別預設值說明
validateResultbooleantrue對升級後的文件執行結構描述驗證
checkVersionbooleantrue確認輸出宣告的版本為 OpenAPI 3.2.x
maxDepthnumber64循環參照掃描深度。設為 0 可停用

OpenApiUpgradeError​

class OpenApiUpgradeError extends Error {
readonly code: UpgradeErrorCode;
readonly issues: readonly OpenApiValidationIssue[];
readonly cause?: unknown;
}

isOpenApiUpgradeError(value)​

型別守衛。當值為 OpenApiUpgradeError 執行個體時回傳 true。

錯誤碼​

錯誤碼值觸發條件
InvalidInput"INVALID_INPUT"輸入不是字串或一般物件
ParseOrValidateFailed"PARSE_OR_VALIDATE_FAILED"無法剖析輸入,或初始驗證失敗
FirstUpgradeFailed"FIRST_UPGRADE_FAILED"2.0/3.0 → 3.1 升級失敗
SecondUpgradeFailed"SECOND_UPGRADE_FAILED"3.1 → 3.2 升級器拋出例外
VersionAssertionFailed"VERSION_ASSERTION_FAILED"輸出未宣告 OpenAPI 3.2.x
ValidationFailed"VALIDATION_FAILED"升級後的文件未通過結構描述驗證
CircularReference"CIRCULAR_REFERENCE"輸入文件包含循環參照

型別匯出​

import type {
Oas20Document, Oas30Document, Oas31Document, Oas32Document,
OpenApiDocument, OpenApiInput, UpgradedDocument,
OpenApiValidationIssue, UpgradeOptions,
} from "@powerduck/openapi-parser";

OpenAPI 3.2 結構描述物件型別:

import type {
SchemaObject, OperationObject, ParameterObject, PathItemObject,
RequestBodyObject, ResponseObject, ServerObject, TagObject, MediaTypeObject,
} from "@powerduck/openapi-parser";

重新匯出的 @scalar 輔助函式​

以下函式直接重新匯出,供進階用法使用:

import { dereference, upgrade, validate } from "@powerduck/openapi-parser";