打开api-typescription 翻转 OpenAPI 3.0 & 3.1 使用Node.js快速将图案切入TypeScript. 不需要Java/node-gyp/运行OpenAPI服务器.
代码是 麻省理工学院执照 免费使用.
提示 : 新建到 OpenAPI 吗 ? Speeasy 的演讲 输入到 OpenAPI 为新来者提供方便指南,解释OpenAPI的“为什么”和“如何”.
特征
- • 支持OpenAPI 3.0和3.1(包括高级功能,例如 歧视者(中文(简体) )
- 生成 无运行时间类型 超越了老学校的密码
- * 本地或远程从YAML或JSON装入计划
- * 生成数以毫秒内甚至巨大的计划类型
注意: OpenAPI 2. x 有版本支持 5.x 和以往
实例
👀 参见示例
设置
此库需要最新的版本 节点.js 安装(建议20.x或更高)。 以此为契机,在您的项目中进行以下操作:
npm i -D openapi-typescript typescript
还有你的 tsconfig.json,以正确装入类型 :
{
"compilerOptions": {
+ "module": "ESNext", // or "NodeNext"
+ "moduleResolution": "Bundler" // or "NodeNext"
}
}
高度建议
此外,以下内容可增强类型安全性:
{ "compilerOptions": { + "noUncheckedIndexedAccess": true } }
基本用途
首先,通过运行生成本地类型文件 npx openapi-typescript首先指定您的输入方案( JSON 或 YAML) , 以及您喜欢的地方 --output (单位:千美元)-o待保存 :
# Local schema
npx openapi-typescript ./path/to/my/schema.yaml -o ./path/to/my/schema.d.ts
# 🚀 ./path/to/my/schema.yaml -> ./path/to/my/schema.d.ts [7ms]
# Remote schema
npx openapi-typescript https://myapi.dev/api/v1/openapi.yaml -o ./path/to/my/schema.d.ts
# 🚀 https://myapi.dev/api/v1/openapi.yaml -> ./path/to/my/schema.d.ts [250ms]
然后,在您的 TypeScript 项目中,在需要时导入类型 :
import type { paths, components } from "./my-openapi-3-schema"; // generated by openapi-typescript
// Schema Obj
type MyType = components["schemas"]["MyType"];
// Path params
type EndpointParams = paths["/my/endpoint"]["parameters"];
// Response obj
type SuccessResponse =
paths["/my/endpoint"]["get"]["responses"][200]["content"]["application/json"]["schema"];
type ErrorResponse =
paths["/my/endpoint"]["get"]["responses"][500]["content"]["application/json"]["schema"];
从这里,您可以将这些类型用于以下任何一种(但不限于):
- 使用 OpenAPI 支持的获取客户端( 如 openapi 牵引(中文(简体) )
- 用于其他 API 请求的搜索类型
- 基于 API 类型构建核心业务逻辑
- 校验模拟测试数据符合当前计划
- 将 API 类型装入您发布的任何 npm 包( 如客户端 SDKs等)