Skip to content
本页导航

接口目录

服务接口分为api层(src/cix/api),通常api层是由 @cixjs/cli 生成,business层(src/cix/business)business一般做数据转换以及业务处理,entity是用来存放生成的typescript类型文件

txt
📂 cix [cix框架]
    📂 api [API调用]
        📃 host.ts API调用域名
    📂 business [API数据业务处理]
    📂 entity [API数据类型]
📂 cix [cix框架]
    📂 api [API调用]
        📃 host.ts API调用域名
    📂 business [API数据业务处理]
    📂 entity [API数据类型]

接口调用

调用接口前,先从cix/business下寻找,如果没有需要通过 @cixjs/cli 脚手架生成对应文档。需注意,涉及跨服务的调用需要联系技术负责确认后调用。

ts
/** 接口请求方法 */
import ResearchSelectBusiness from "@/cix/business/researchReport/ResearchSelectBusiness";

/** 获取数据 */
async function getFeed() {
  ...
  const res = await ResearchSelectBusiness.searchReportFeed({
    page: 1,
    pageSize: 10,
    ...
  })
  ...
}
/** 接口请求方法 */
import ResearchSelectBusiness from "@/cix/business/researchReport/ResearchSelectBusiness";

/** 获取数据 */
async function getFeed() {
  ...
  const res = await ResearchSelectBusiness.searchReportFeed({
    page: 1,
    pageSize: 10,
    ...
  })
  ...
}

使用 cix doc 须知

例如项目中需要使用 /exchange-fund 这个服务

  • 先看 cix/api/CommonHost 有没有 /exchange-fund 的配置
  • 有就说明已经有这个api文件了,只需要添加新的 class 方法
  • 没有就需要新建,按照以前 api 文件的命名规范,并在 cix/api/CommonHost 新增配置
  • 例如服务path是 /exchange-fund 则命名 api/ExchangeFundAPI.ts entity/exchangeFund,把所有生成的models 放入 entity 新建的文件夹中
  • 利用cix doc 生成的文件,把需要的controller 整合到 ExchangeFundAPI.ts 里面,里面 import 的文件参照以前的api做修改即可
  • business可以复制api文件,需要参照以前的business文件来做修改

新增接口

  1. 在空目录下打开powershell,或者terminal,运行
sh
npm install @cixjs/cli -g
npm install @cixjs/cli -g
sh
yarn global add @cixjs/cli -g
yarn global add @cixjs/cli -g
sh
npx @cixjs/cli doc
npx @cixjs/cli doc
  1. 安装后运行,选择需要生成的服务接口,如没找到对应服务,通过打开swagger文档,F12查看network,获取api-docs接口复制,选择custom粘贴即可

获取到的api-docs,例如:https://app-test.jrtzcloud.cn/lottery/v3/api-docs

sh
cix doc
cix doc
  1. 生成后将生成output目录,生成的文件可rename后复制至taro项目下src/cix/api里,例如 src/cix/DemoAPI.ts 正常情况下文件内容无需修改可直接使用

需注意,这里不能直接覆盖已有的api文件

txt
📂 output
    📂 api [API接口]
    📂 model [API数据类型]
📂 output
    📂 api [API接口]
    📂 model [API数据类型]
  1. 复制至cix/api后,新增对应business,例如 src/cix/DemoBusiness.ts,程序里将用business层去调用接口
ts
import DemoBusiness from '@/cix/business/DemoBusiness'
...

const getData = async () => {
    const res = await DemoBusiness.getData()
    ...
}
import DemoBusiness from '@/cix/business/DemoBusiness'
...

const getData = async () => {
    const res = await DemoBusiness.getData()
    ...
}

使用过程中 @cixjs/cli 有疑问可以联系 linzh@investoday.com.cn

lhiro