
https://github.com/zt8989/sisyphus-cli
一个从 swagger 自动生成 ts 代码的工具
npm install sisyhpus-cli -g
xxx-apisisyhpus init xxx-api初始化xxx-apisisyhpus.json文件 file 路径是否执行对应 swagger 的地址sisyhpus更新代码npm run build打包npm publish发布sisyhpus-cli会根据 swagger.json 生成类似代码
class Api { constructor(request){ this.request = request } function getDetail(pathParams, queryParams, bodyParams){ return this.request({ url: bindUrl('/detail', pathParams), method: 'GET', params: queryParams, data: bodyParams }) } } import Api from 'xxx-api'; 由于生成的代码是按照 axios 的格式组织参数,所以针对不同的请求库,要做一层封装。 以fetch为例
function adapter(requestInstance) { /** * * @param {AjaxOptions} options */ return optiOns=> { const baseUrl = '/api'; let { url } = options; const { params, data, ...restParams } = options; url = baseUrl + url; if (params) { url = `${url}?${stringify(params)}`; } return requestInstance(url, { ...restParams, body: data }); }; } const api = new Api(adapter(request)); api.login({ useraname: xxx, password: xxx }).then(res => {}) Q: 我遇到了中文的 model 怎么办?
A: 修改 java 中的注解,
@ApiModel("xxx")=>@ApiModel(description = "xxx")