2026-06-20 22:21:34 +08:00
|
|
|
|
/**
|
2026-07-11 07:37:53 +08:00
|
|
|
|
* 02-工具管理 API(22 端点)
|
2026-06-20 22:21:34 +08:00
|
|
|
|
* 路径前缀:/tools
|
|
|
|
|
|
*
|
|
|
|
|
|
* 对齐 backend/server/routers/external_systems/tool_router.py:
|
|
|
|
|
|
* - 查询类端点后端用 get_required_user(普通用户可访问),写操作用 get_admin_user
|
|
|
|
|
|
* - execute / batch-execute 后端用 get_required_user(执行类操作,非写操作)
|
|
|
|
|
|
* - get_tool / delete_tool 接受可选 system_id query
|
|
|
|
|
|
* - export-wsdl 后端返回普通 JSON(非 StreamingResponse),system_id 必填
|
|
|
|
|
|
* - export 后端返回 StreamingResponse,需用 blob 接收
|
2026-07-11 07:37:53 +08:00
|
|
|
|
* - health-check 后端用 get_admin_user,请求体可选 env_key
|
2026-06-20 22:21:34 +08:00
|
|
|
|
*/
|
|
|
|
|
|
import { apiGet, apiPost, apiAdminPost, apiAdminPut, apiAdminDelete } from '../base'
|
|
|
|
|
|
import { buildUrl, buildQueryString, MODULE_PATHS } from './base'
|
|
|
|
|
|
|
|
|
|
|
|
const URL = buildUrl(MODULE_PATHS.TOOL)
|
|
|
|
|
|
|
|
|
|
|
|
// ===== 列表与详情 =====
|
|
|
|
|
|
export const getToolListApi = (params = {}) => apiGet(`${URL}${buildQueryString(params)}`)
|
|
|
|
|
|
export const createToolApi = (data) => apiAdminPost(URL, data)
|
|
|
|
|
|
export const getToolDetailApi = (id, systemId) =>
|
|
|
|
|
|
apiGet(`${URL}/${id}${buildQueryString({ system_id: systemId })}`)
|
|
|
|
|
|
export const updateToolApi = (id, data) => apiAdminPut(`${URL}/${id}`, data)
|
|
|
|
|
|
export const deleteToolApi = (id, systemId) =>
|
|
|
|
|
|
apiAdminDelete(`${URL}/${id}${buildQueryString({ system_id: systemId })}`)
|
|
|
|
|
|
|
|
|
|
|
|
// ===== 选项与启用列表 =====
|
|
|
|
|
|
export const getEnabledToolsApi = (params = {}) =>
|
|
|
|
|
|
apiGet(`${URL}/enabled${buildQueryString(params)}`)
|
|
|
|
|
|
export const getToolOptionsApi = (params = {}) =>
|
|
|
|
|
|
apiGet(`${URL}/options${buildQueryString(params)}`)
|
|
|
|
|
|
|
|
|
|
|
|
// ===== 导入导出 =====
|
|
|
|
|
|
// 后端 export_tools 返回 StreamingResponse(application/octet-stream)
|
|
|
|
|
|
export const exportToolsApi = (params = {}) =>
|
|
|
|
|
|
apiGet(`${URL}/export${buildQueryString(params)}`, {}, true, 'blob')
|
|
|
|
|
|
// 后端 export_wsdl 返回普通 JSON,system_id 必填
|
|
|
|
|
|
export const exportToolWsdlApi = (params = {}) => apiGet(`${URL}/export-wsdl${buildQueryString(params)}`)
|
|
|
|
|
|
export const importToolsApi = (data) => apiAdminPost(`${URL}/import`, data)
|
|
|
|
|
|
export const importToolsFromWsdlApi = (data) => apiAdminPost(`${URL}/import-from-wsdl`, data)
|
|
|
|
|
|
|
|
|
|
|
|
// ===== 执行 =====
|
|
|
|
|
|
// 后端 execute / batch-execute 用 get_required_user(执行类操作,非写操作)
|
|
|
|
|
|
export const executeToolApi = (data) => apiPost(`${URL}/execute`, data)
|
|
|
|
|
|
export const batchExecuteToolsApi = (data) => apiPost(`${URL}/batch-execute`, data)
|
|
|
|
|
|
|
2026-07-11 07:37:53 +08:00
|
|
|
|
// ===== 健康检查 =====
|
|
|
|
|
|
// 后端 health_check_external_tool 用 get_admin_user,请求体可选 env_key
|
|
|
|
|
|
export const healthCheckToolApi = (id, data = {}) =>
|
|
|
|
|
|
apiAdminPost(`${URL}/${id}/health-check`, data)
|
|
|
|
|
|
|
2026-06-20 22:21:34 +08:00
|
|
|
|
// ===== 批量克隆 =====
|
|
|
|
|
|
export const batchCloneToolsApi = (data) => apiAdminPost(`${URL}/batch-clone`, data)
|
|
|
|
|
|
|
|
|
|
|
|
// ===== 克隆 =====
|
|
|
|
|
|
export const cloneToolApi = (id, data) => apiAdminPost(`${URL}/${id}/clone`, data)
|
|
|
|
|
|
|
|
|
|
|
|
// ===== 版本管理 =====
|
|
|
|
|
|
export const getToolVersionsApi = (id, params = {}) =>
|
|
|
|
|
|
apiGet(`${URL}/${id}/versions${buildQueryString(params)}`)
|
|
|
|
|
|
export const compareToolVersionsApi = (id, v1, v2) =>
|
|
|
|
|
|
apiGet(`${URL}/${id}/versions/${v1}/compare/${v2}`)
|
|
|
|
|
|
export const rollbackToolVersionApi = (id, v) =>
|
|
|
|
|
|
apiAdminPost(`${URL}/${id}/versions/${v}/rollback`)
|
|
|
|
|
|
|
|
|
|
|
|
// ===== 参数模板与执行趋势 =====
|
|
|
|
|
|
export const getToolParameterTemplateApi = (id) =>
|
|
|
|
|
|
apiGet(`${URL}/${id}/parameter-template`)
|
|
|
|
|
|
export const getToolExecutionTrendApi = (id, params = {}) =>
|
|
|
|
|
|
apiGet(`${URL}/${id}/execution-trend${buildQueryString(params)}`)
|
|
|
|
|
|
|
|
|
|
|
|
// ===== 关联资产 =====
|
|
|
|
|
|
export const getToolAssetsApi = (id) => apiGet(`${URL}/${id}/assets`)
|