1
0

feat: 前端适配后端新接口

适配后端统一模型 ID、协议字段、UUID 自动生成和结构化错误响应:

- 类型定义:Provider 新增 protocol 字段,Model 新增 unifiedId,CreateModelInput 移除 id
- API 客户端:提取结构化错误响应中的错误码
- 供应商管理:添加协议选择下拉框和表格列
- 模型管理:移除 ID 输入,显示统一模型 ID(只读)
- Hooks:错误码映射为友好中文消息
- 测试:所有组件测试通过,mock 数据适配新字段
- 文档:更新 README 说明协议字段和统一模型 ID
This commit is contained in:
2026-04-21 20:49:37 +08:00
parent 24f03595a7
commit feff97acbd
28 changed files with 547 additions and 78 deletions

View File

@@ -32,7 +32,7 @@ describe('stats API', () => {
let receivedUrl: string | null = null;
server.use(
http.get('/api/stats', ({ request }) => {
http.get('http://localhost:3000/api/stats', ({ request }) => {
receivedUrl = request.url;
return HttpResponse.json(mockStats);
}),
@@ -63,7 +63,7 @@ describe('stats API', () => {
let receivedUrl: string | null = null;
server.use(
http.get('/api/stats', ({ request }) => {
http.get('http://localhost:3000/api/stats', ({ request }) => {
receivedUrl = request.url;
return HttpResponse.json([]);
}),
@@ -86,7 +86,7 @@ describe('stats API', () => {
let receivedUrl: string | null = null;
server.use(
http.get('/api/stats', ({ request }) => {
http.get('http://localhost:3000/api/stats', ({ request }) => {
receivedUrl = request.url;
return HttpResponse.json([]);
}),
@@ -104,7 +104,7 @@ describe('stats API', () => {
it('returns UsageStats array with camelCase keys', async () => {
server.use(
http.get('/api/stats', () => {
http.get('http://localhost:3000/api/stats', () => {
return HttpResponse.json(mockStats);
}),
);