Appearance
接口目录
服务接口分为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文件来做修改
新增接口
- 在空目录下打开powershell,或者terminal,运行
sh
npm install @cixjs/cli -gnpm install @cixjs/cli -gsh
yarn global add @cixjs/cli -gyarn global add @cixjs/cli -gsh
npx @cixjs/cli docnpx @cixjs/cli doc- 安装后运行,选择需要生成的服务接口,如没找到对应服务,通过打开swagger文档,F12查看network,获取api-docs接口复制,选择custom粘贴即可
获取到的api-docs,例如:https://app-test.jrtzcloud.cn/lottery/v3/api-docs
sh
cix doccix doc- 生成后将生成output目录,生成的文件可rename后复制至taro项目下src/cix/api里,例如 src/cix/DemoAPI.ts 正常情况下文件内容无需修改可直接使用
需注意,这里不能直接覆盖已有的api文件
txt
📂 output
📂 api [API接口]
📂 model [API数据类型]📂 output
📂 api [API接口]
📂 model [API数据类型]- 复制至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()
...
}