前面已经把 API 路由按域拆开,也把 web 子站里的请求按 api.ts 文件拆开了。但当前还有一个问题没有解决:web 子站这边,服务端组件和客户端组件的请求方式还没有统一
我们想要的方式是,封装一个方法:可以直接通过如下方式调用接口
1import type { PingRequest, PingResponse } from '@repo/contracts'2import { http } from '@/http'34export function postPing(payload: PingRequest) {5return http.post<PingRequest, PingResponse>('/rpc/system/ping', payload)6}
如果不提前封装,请求代码很快就会出现两种分裂:
fetch(url, init)所以这篇文章要做的事情很明确:封装一个单入口的 http 模块,让 web/admin 子站里的服务端组件和客户端组件都走同一套请求方式。