/** * 02-工具管理 API(22 端点) * 路径前缀:/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 接收 * - health-check 后端用 get_admin_user,请求体可选 env_key */ 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) // ===== 健康检查 ===== // 后端 health_check_external_tool 用 get_admin_user,请求体可选 env_key export const healthCheckToolApi = (id, data = {}) => apiAdminPost(`${URL}/${id}/health-check`, data) // ===== 批量克隆 ===== 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`)