old-api

0.0.1-alpha.14-edu • Public • Published

Adapter 处理流程

接口[出参|入参]映射关系生成

  1. 根据 swagger 生成 newApi
  2. 通过 elk 导出 oldApi 的响应数据结构体 urlRepos
  3. 使用getMappingResource 方法解析urlRepos 生成 oldApi 的返回值key以及structure(packages/old-api/elk/sourceMappings/)
  4. 交由后端补充填写完 oldApi==>newApi 的字段映射关系,特殊结构做注释说明
  5. 使用scripts/json2mappings脚本 将补充完整的映射关系处理成按controller/method/[res|req]的目录结构生成对应的文件

适配器生成规则

  1. 根据urlRepos 以及 confluence 中维护的新旧controller|url映射关系(方法待完善,解析confluence导出word待开发)
export default {
  _newMethod: 'newMethod',
  _url_: { new: '/api/new/', old: '/api/old/' },
  _Controller: { new: 'newController', old: 'oldController' },
  // ···
}
  1. 自动生成的old-api/src/[controllers]文件对入参进行装箱
async function needInit_POST_1(
  qyIds: INeedInitPOST1QyIdsReq,
  needInit: INeedInitPOST1NeedInitReq,
): Promise<NeedInitPOST1PostRes> {
  //将参数包装到对象中
  return adapter.needInit_POST_1({
    qyIds,
    needInit,
  })
}
  1. 自动生成的 adapter 文件自动导入newApi,genNewRes等
//自动导入转换方法
import { genNewRes, invertMappings4Params } from '../utils/genNewRes'
//根据 步骤 1)自动导入controller对应的mappings
import * as queryAllProvince_GET_res from '../mappings/custom-manager-controller/queryAllProvince_GET/res'
import * as queryAllProvince_GET_req from '../mappings/custom-manager-controller/queryAllProvince_GET/req'

async function queryAllProvince_GET(params): Promise<QueryAllProvinceGETgetRes> {
  const paramsMapping = invertMappings4Params(queryAllProvince_GET_req)
  const newParams = genNewRes(params, paramsMapping)
  // #######manual ######

  //  handler-Params

  // #######manual ######

  // #######queryAllProvince_GET begin######
  //新接口传参顺序按照新接口swagger文档定义
  const _result = await newApi.commonXzqhController.getAllProvince(newParams.qyIds, newParams.needInit)
  genNewRes(_result, queryAllProvince_GET_res)

  // #######queryAllProvince_GET end######
  // #######manual ######

  //  handler-result

  // #######manual ######
  return _result
}

Readme

Keywords

none

Package Sidebar

Install

npm i old-api

Weekly Downloads

0

Version

0.0.1-alpha.14-edu

License

ISC

Unpacked Size

8.28 MB

Total Files

4

Last publish

Collaborators

  • feelbird