Skip to content

Repository files navigation

ts-autoapi

使用 openapi 或者 swagger 自动生成请求方法,和ts类型,并且不预设任何请求库,可连接到任意请求工具。

且最终生成后的代码超级轻量级,比常规请求封装请求函数代码体积能减少约一半。

Installation

npm install ts-autoapi -D

Usage

npx ts-autoapi gen --doc https://raw.githubusercontent.com/github/rest-api-description/main/descriptions-next/ghes-3.0/ghes-3.0.json --output test-apis --model test-apis/models
# your file structure will be like this.
├── test-apis
│ ├── models
│ │ ├── api-a.d.ts
|| ├── api-b.d.ts
│ ├── api-a.ts
│ ├── api-b.ts

Use apis

// you should setRequestHandler before use apis// index.tsimport{useBridge}from'ts-autoapi'import{axios}from"<your request utils>"// or any request utils/** * all apis will use this request handler */useBridge().setRequestHandler((config)=>{returnaxios.request({
...config,// other config in your requesturl: config.url,params: config.query,data: config.body,method: config.methodasMethod,headers: config.headers,})})// your business codeimport{postLogin}from'../test-apis/api-a'// send requestpostLogin({body: {username: 'test',password: 'test',},}).then(res=>{console.log(res)}

Write your customize apis

// test-apis/my-api.tsimport{api}from'ts-autoapi'exportconstgetMyApi=api`GET /my-api`// you can also type it.exportconstpostMyApi=api<(path: string,query: any,body: any,config?: any)=>any>`POST /my-api`

如果您觉得这个项目有用,请考虑给它一个 star。

About

A lightweight tool to generate TypeScript code from OpenAPI (2.0|3.0) json schema.

Resources

Stars

3 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages