Skip to content

Commit 9fa1365

Browse files
aice030LiusCraft
authored andcommitted
添加测试用mock api和测试数据
1 parent f188792 commit 9fa1365

File tree

2 files changed

+1390
-0
lines changed

2 files changed

+1390
-0
lines changed

client/src/mock/api.ts

Lines changed: 157 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,157 @@
1+
// Mock API服务
2+
import { mockServicesData, mockServiceDetails, mockVersionOptions, mockScheduledReleases, mockServiceActiveVersions, mockServiceMetrics, mockAvailableVersions, mockDeploymentPlans, mockMetricsData, mockDeploymentChangelog, type ServicesResponse, type ServiceDetail, type ServiceActiveVersionsResponse, type ServiceMetricsResponse, type AvailableVersionsResponse, type DeploymentPlansResponse, type MetricsResponse, type DeploymentChangelogResponse } from './services'
3+
4+
// 模拟网络延迟
5+
const delay = (ms: number) => new Promise(resolve => setTimeout(resolve, ms))
6+
7+
// Mock API服务类
8+
export class MockApiService {
9+
// 获取服务列表
10+
static async getServices(): Promise<ServicesResponse> {
11+
await delay(500) // 模拟网络延迟
12+
console.log('Mock API: 获取服务列表')
13+
return mockServicesData
14+
}
15+
16+
// 获取服务详情
17+
static async getServiceDetail(serviceName: string): Promise<ServiceDetail> {
18+
await delay(300) // 模拟网络延迟
19+
console.log(`Mock API: 获取服务详情 - ${serviceName}`)
20+
21+
const serviceDetail = mockServiceDetails[serviceName]
22+
if (!serviceDetail) {
23+
throw new Error(`服务 ${serviceName} 不存在`)
24+
}
25+
26+
return serviceDetail
27+
}
28+
29+
// 获取服务活跃版本
30+
static async getServiceActiveVersions(serviceName: string): Promise<ServiceActiveVersionsResponse> {
31+
await delay(300)
32+
console.log(`Mock API: 获取服务活跃版本 - ${serviceName}`)
33+
const activeVersions = mockServiceActiveVersions[serviceName]
34+
if (!activeVersions) {
35+
throw new Error(`服务 ${serviceName} 的活跃版本数据不存在`)
36+
}
37+
return activeVersions
38+
}
39+
40+
// 获取服务指标数据 - 新的API接口
41+
static async getServiceMetrics(serviceName: string): Promise<ServiceMetricsResponse> {
42+
await delay(300) // 模拟网络延迟
43+
console.log(`Mock API: 获取服务指标数据 - ${serviceName}`)
44+
45+
const metrics = mockServiceMetrics[serviceName]
46+
if (!metrics) {
47+
throw new Error(`服务 ${serviceName} 的指标数据不存在`)
48+
}
49+
50+
return metrics
51+
}
52+
53+
// 获取服务可发布版本列表 - 新的API接口
54+
static async getServiceAvailableVersions(serviceName: string): Promise<AvailableVersionsResponse> {
55+
await delay(300) // 模拟网络延迟
56+
console.log(`Mock API: 获取服务可发布版本列表 - ${serviceName}`)
57+
58+
const availableVersions = mockAvailableVersions[serviceName]
59+
if (!availableVersions) {
60+
throw new Error(`服务 ${serviceName} 的可发布版本数据不存在`)
61+
}
62+
63+
return availableVersions
64+
}
65+
66+
// 获取服务发布计划列表 - 新的API接口
67+
static async getServiceDeploymentPlans(serviceName: string): Promise<DeploymentPlansResponse> {
68+
await delay(300) // 模拟网络延迟
69+
console.log(`Mock API: 获取服务发布计划列表 - ${serviceName}`)
70+
71+
const deploymentPlans = mockDeploymentPlans[serviceName]
72+
if (!deploymentPlans) {
73+
throw new Error(`服务 ${serviceName} 的发布计划数据不存在`)
74+
}
75+
76+
return deploymentPlans
77+
}
78+
79+
// 获取服务指标数据 - 新的API接口
80+
static async getServiceMetricsData(serviceName: string, metricName: string, version: string): Promise<MetricsResponse> {
81+
await delay(300) // 模拟网络延迟
82+
console.log(`Mock API: 获取服务指标数据 - ${serviceName}/${metricName}?version=${version}`)
83+
84+
const serviceMetrics = mockMetricsData[serviceName]
85+
if (!serviceMetrics) {
86+
throw new Error(`服务 ${serviceName} 的指标数据不存在`)
87+
}
88+
89+
const metricData = serviceMetrics[metricName]
90+
if (!metricData) {
91+
throw new Error(`服务 ${serviceName} 的指标 ${metricName} 数据不存在`)
92+
}
93+
94+
return metricData
95+
}
96+
97+
98+
// 取消部署计划 - 新的API接口
99+
static async cancelDeployment(deployID: string): Promise<{ status: number }> {
100+
await delay(300)
101+
console.log(`Mock API: 取消部署计划 - ${deployID}`)
102+
// 模拟删除操作,返回状态码200
103+
return { status: 200 }
104+
}
105+
106+
// 暂停部署计划 - 新的API接口
107+
static async pauseDeployment(deployID: string): Promise<{ status: number }> {
108+
await delay(300)
109+
console.log(`Mock API: 暂停部署计划 - ${deployID}`)
110+
// 模拟暂停操作,返回状态码200
111+
return { status: 200 }
112+
}
113+
114+
// 继续部署计划 - 新的API接口
115+
static async continueDeployment(deployID: string): Promise<{ status: number }> {
116+
await delay(300)
117+
console.log(`Mock API: 继续部署计划 - ${deployID}`)
118+
// 模拟继续操作,返回状态码200
119+
return { status: 200 }
120+
}
121+
122+
// 回滚部署计划 - 新的API接口
123+
static async rollbackDeployment(deployID: string): Promise<{ status: number }> {
124+
await delay(300)
125+
console.log(`Mock API: 回滚部署计划 - ${deployID}`)
126+
// 模拟回滚操作,返回状态码200
127+
return { status: 200 }
128+
}
129+
130+
// 获取部署变更记录 - 新的API接口
131+
static async getDeploymentChangelog(start?: string, limit?: number): Promise<DeploymentChangelogResponse> {
132+
await delay(300)
133+
console.log(`Mock API: 获取部署变更记录 - start: ${start}, limit: ${limit}`)
134+
135+
// 模拟分页逻辑
136+
let items = [...mockDeploymentChangelog.items]
137+
138+
// 如果有start参数,模拟从该时间点开始的数据
139+
if (start) {
140+
const startTime = new Date(start)
141+
items = items.filter(item => new Date(item.startTime) <= startTime)
142+
}
143+
144+
// 如果有limit参数,限制返回数量
145+
if (limit && limit > 0) {
146+
items = items.slice(0, limit)
147+
}
148+
149+
return {
150+
items,
151+
next: items.length > 0 ? items[items.length - 1].startTime : undefined
152+
}
153+
}
154+
}
155+
156+
// 导出Mock API实例
157+
export const mockApi = MockApiService

0 commit comments

Comments
 (0)