Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

MinionsDave/weapp-openapi-gen

Repository files navigation

weapp-openapi-gen

该工具用于从 OpenApi/Swagger 3 声明文件 生成微信小程序的类型和请求代码。

运行

npm install -g weapp-openapi-gen
// input也可以为地址
weapp-openapi-gen --input my-api.yaml --output my-app/miniprogram/service/api

该操作将解析 my-api.yaml 生成类型及请求代码到目录 my-app/miniprogram/service/api

例子

weapp-openapi-gen --input https://petstore3.swagger.io/api/v3/openapi.json --output miniprogram/service/api

生成

├── http-client.ts
├── index.ts
├── models
│ ├── api-response.ts
│ ├── category.ts
│ ├── order.ts
│ ├── pet.ts
│ ├── tag.ts
│ └── user.ts
├── services
│ ├── pet.service.ts
│ ├── store.service.ts
│ └── user.service.ts
└── strict-http-response.ts

配置文件以及运行参数

优先读取项目目录下的 weapp-openapi-gen.json, 也可直接指定 weapp-openapi-gen --config my-config.json

完整的配置列表可以参考JSON schema file,也可以通过 weapp-openapi-gen --help 获取。 所有的参数都可在命令中直接使用,例如: --includeTags tag1,tag2,tag3,或者 --exclude-tags tag1,tag2,tag3

配置文件例子:

{
 "$schema": "node_modules/weapp-openapi-gen/weapp-openapi-gen-schema.json",
 "input": "my-file.json",
 "output": "out/person-place",
 "ignoreUnusedModels": false
}

HttpClient api

addRequestInterceptor(interceptor: RequestInterceptor)

请求拦截器,可在请求发送前对请求参数进行统一的处理,例如添加域名和请求头。

import { httpClient } from './service/api';
httpClient.addRequestInterceptor(options => {
 options.url = `https://your.domain.com${options.url}`;
 options.header = Object.assign({}, options.header, {
 Authorization: 'token',
 });
 return options;
});

addResponseInterceptor(interceptor: ResponseInterceptor)

响应拦截器,可对请求结果进行统一的处理。

import { httpClient } from './service/api';
httpClient.addResponseInterceptor(resp => {
 const data = resp.data.data;
 const code = data.code;
 switch (code) {
 case 200:
 resp.data = data;
 break;
 case 400:
 // 业务异常处理
 break;
 case 500:
 // 服务器异常处理
 break;
 // ...
 default:
 break;
 }
 return resp;
});

About

An OpenAPI 3.0 codegen for weapp

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • TypeScript 90.6%
  • Handlebars 9.1%
  • JavaScript 0.3%

AltStyle によって変換されたページ (->オリジナル) /