0.1.2 • Published 7 months ago

ts-autoapi v0.1.2

Weekly downloads
-
License
MIT
Repository
-
Last release
7 months ago

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.ts
import { useBridge } from 'ts-autoapi'
import { axios } from "<your request utils>" // or any request utils

/**
 * all apis will use this request handler
 */
useBridge().setRequestHandler((config) => {
  return axios.request({
    ...config, // other config in your request
    url: config.url,
    params: config.query,
    data: config.body,
    method: config.method as Method,
    headers: config.headers,
  })
})


// your business code
import { postLogin } from '../test-apis/api-a'

// send request
postLogin({
  body: {
    username: 'test',
    password: 'test',
  },
}).then(res => {
  console.log(res)
}

Write your customize apis

// test-apis/my-api.ts
import { api } from 'ts-autoapi'

export const getMyApi = api`GET /my-api`

// you can also type it.
export const postMyApi = api<(path: string, query: any, body: any, config?: any) => any>`POST /my-api`

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

0.1.0

7 months ago

0.1.2

7 months ago

0.1.1

7 months ago

0.0.4

9 months ago

0.0.3

9 months ago

0.0.2

9 months ago

0.0.1

9 months ago