1.0.2 • Published 3 years ago

icinfo-tool-api v1.0.2

Weekly downloads
-
License
ISC
Repository
gitlab
Last release
3 years ago

api自动化生成代码工具

解析后端的微服务api文档,自动生成所需要的接口函数(TS格式的)

引入的命令

npm i -D git+ssh://git@gitlab.icinfo.co:fed/tool.api.git#v0.2.7

基本用法案例

在需要的项目中创建一个文件,比如 api.ts

import axios from 'axios';

import { cleanDir } from 'tutils/fileSystemSync';
import { generate } from 'api-server';

async function main() {
  try {
    cleanDir('src/api');
  } catch (e) {
    // eslint-disable-next-line no-console
  console.log(e);
  }

    [
        'http://api.fed.icinfo.co/xyxf/xyxf_zzgl/develop/api.json',
        'http://api.fed.icinfo.co/xyxf/origin-framework-cloud/member/api.json',
        'http://api.fed.icinfo.co/business-component/check-form/develop/api.json',
    ].forEach(async (url) => {
    const result = await axios(url);

    generate(result.data, {
      tsDir: 'src/api',
      merge: true,
      request: 'request',
      prepend: 'import {request, RequestOptions} from "@/untils/http"',
      optionsType: 'RequestOptions',
      dataDescription: '要提交给服务器的数据',
      optionsDescription: '附加选项',
    });

    // eslint-disable-next-line no-console
    console.log('已成功生成:', url.replace(/\/api\.json$/, ''));
  });
}

main();

同时在package.json配置scripts

"api": "ts-node ./scripts/api.ts"

执行方法为

npm run api

可配置的参数

名称类型是否必填说明默认值备注
getMockDatafunction自定义个别字段的模拟数据--
mockCountfunction自定义个别字段的模拟个数--
mockDirstring模拟数据文件夹地址--
mergeboolean是否合并已有的模拟数据--
mockDepthnumber嵌套对象的最多模拟次数--
mockPrefixstring模拟数据的前缀--
tsDirstring接口文件夹地址--
docFilestring生成的文档文件名--
prependstring模块前追加的内容--
optionsTypestring选项的类型--
dataDescriptionstring数据的描述--
optionsDescriptionstring附加选项的描述--
requeststring发起请求接口名--
newLinestring使用的换行符--
apiType'jquery'|'axios'参数配置的类型, 默认为jquery.ajax的方案,可选axios方案'jquery'-