fix(http): 网关分服务前缀——登录接口走 /api/user,业务接口走 /api/biz
This commit is contained in:
parent
6889e9b4fa
commit
5582fbb863
|
|
@ -5,10 +5,12 @@ import { ROUTES } from '@/constants/routes'
|
|||
import { reLaunch } from '@/utils/navigation'
|
||||
import { ApiError, BusinessError, AuthExpiredError } from './errors'
|
||||
|
||||
// 测试环境(内网,开发者工具需勾选「不校验合法域名」);正式域名为占位符,上线前必须替换(spec D2)
|
||||
const BASE_URL = process.env.NODE_ENV === 'development'
|
||||
? 'http://192.168.10.11:39101/api/user'
|
||||
: 'https://PROD_PLACEHOLDER/api/user'
|
||||
// 网关分服务前缀:登录走 user 服务,其余业务接口走 biz 服务(后端约定 2026-09-17)
|
||||
const GATEWAY = process.env.NODE_ENV === 'development'
|
||||
? 'http://192.168.10.11:39101'
|
||||
: 'https://PROD_PLACEHOLDER' // 正式域名占位符,上线前必须替换(spec D2)
|
||||
const USER_BASE = `${GATEWAY}/api/user`
|
||||
const BIZ_BASE = `${GATEWAY}/api/biz`
|
||||
|
||||
// 后端约定的未登录业务码(占位 '401',联调确认后更新——spec D5/Open Questions 1)
|
||||
const UNAUTHORIZED_CODES = new Set(['401'])
|
||||
|
|
@ -70,10 +72,13 @@ export async function request<T>(
|
|||
if (tokenAtStart) headers.token = tokenAtStart
|
||||
}
|
||||
|
||||
// 登录接口走 user 服务前缀,其余业务接口走 biz 前缀
|
||||
const base = url.startsWith('/thirdPlatform/') ? USER_BASE : BIZ_BASE
|
||||
|
||||
let res: Taro.request.SuccessCallbackResult<ApiEnvelope<T>>
|
||||
try {
|
||||
res = await Taro.request({
|
||||
url: BASE_URL + url,
|
||||
url: base + url,
|
||||
method,
|
||||
// Taro.request 的 GET 参数同样走 data,运行时自动序列化为 query string
|
||||
data: params,
|
||||
|
|
|
|||
|
|
@ -115,11 +115,12 @@ describe('client envelope 解析', () => {
|
|||
expect(mockRequest.mock.calls[0][0].header.token).toBeUndefined()
|
||||
})
|
||||
|
||||
it('BASE_URL 拼接:请求 url = BASE_URL + path', async () => {
|
||||
it('BASE_URL 拼接:登录接口走 /api/user,业务接口走 /api/biz', async () => {
|
||||
mockRequest.mockResolvedValue(okBody(null))
|
||||
await request.get('/thirdPlatform/wxDevLogin/miniapp/login')
|
||||
// BASE_URL 前缀由后端网关决定(当前 /api/user),此处只锁定 path 拼接
|
||||
await request.post('/thirdPlatform/wxDevLogin/miniapp/login', {})
|
||||
expect(mockRequest.mock.calls[0][0].url).toMatch(/\/api\/user\/thirdPlatform\/wxDevLogin\/miniapp\/login$/)
|
||||
await request.post('/yanglao/app/ylHome/getList')
|
||||
expect(mockRequest.mock.calls[1][0].url).toMatch(/\/api\/biz\/yanglao\/app\/ylHome\/getList$/)
|
||||
})
|
||||
})
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue