feat: 添加接口管理功能(后端OpenAPI解析入库+前端列表/详情/测试)
- 新增 ApiEndpoint/ApiParam 实体和 Mapper - 新增 DTO 层(分页查询请求、列表项、详情项、参数项、代理测试请求/响应) - 新增 ApiEndpointService 含 OpenAPI JSON 解析、\ 展开(最大10层)、分页查询 - 新增 ApiEndpointSyncRunner 启动时异步同步 - 新增 ApiEndpointController 分页/详情/手动同步接口 - 新增 ApiTestProxyController 代理测试接口(SSRF 防护) - 前端新增接口列表页、详情弹窗(含测试面板、Token 来源选择) - 前端新增菜单和路由
This commit is contained in:
@@ -0,0 +1,92 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
export interface ApiEndpointItem {
|
||||
id: string
|
||||
path: string
|
||||
method: string
|
||||
summary: string
|
||||
tags: string
|
||||
deprecated: number
|
||||
createTime: string
|
||||
operationId: string
|
||||
}
|
||||
|
||||
export interface ApiParamItem {
|
||||
paramType: string
|
||||
name: string
|
||||
required: number
|
||||
paramTypeDef: string
|
||||
description: string
|
||||
defaultValue: string
|
||||
enumValues: string
|
||||
example: string
|
||||
}
|
||||
|
||||
export interface ApiEndpointDetail {
|
||||
id: string
|
||||
path: string
|
||||
method: string
|
||||
operationId: string
|
||||
summary: string
|
||||
description: string
|
||||
tags: string
|
||||
deprecated: number
|
||||
requestSchema: string
|
||||
responseSchema: string
|
||||
createTime: string
|
||||
params: ApiParamItem[]
|
||||
}
|
||||
|
||||
export interface ApiEndpointListRequest {
|
||||
current: number
|
||||
size: number
|
||||
keyword?: string
|
||||
method?: string
|
||||
tags?: string
|
||||
deprecated?: number
|
||||
}
|
||||
|
||||
export interface ApiTestProxyRequest {
|
||||
method: string
|
||||
path: string
|
||||
body?: string
|
||||
headers?: Record<string, string>
|
||||
params?: Record<string, string>
|
||||
timeoutSeconds?: number
|
||||
}
|
||||
|
||||
export interface ApiTestProxyResponse {
|
||||
status: number
|
||||
body?: any
|
||||
headers?: Record<string, string>
|
||||
duration: number
|
||||
rawBody?: string
|
||||
}
|
||||
|
||||
/**
|
||||
* 分页查询接口列表
|
||||
*/
|
||||
export function getEndpointList(data: ApiEndpointListRequest) {
|
||||
return request.post('/admin/endpoint/list', data)
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询接口详情
|
||||
*/
|
||||
export function getEndpointDetail(operationId: string) {
|
||||
return request.get('/admin/endpoint/detail', { params: { operationId } })
|
||||
}
|
||||
|
||||
/**
|
||||
* 手动触发同步
|
||||
*/
|
||||
export function syncEndpoints() {
|
||||
return request.post('/admin/endpoint/sync')
|
||||
}
|
||||
|
||||
/**
|
||||
* 代理测试请求
|
||||
*/
|
||||
export function testEndpoint(data: ApiTestProxyRequest) {
|
||||
return request.post('/admin/endpoint/test', data)
|
||||
}
|
||||
Reference in New Issue
Block a user