ForcePilot/web/src/apis/external-systems/tool_api.js

74 lines
3.5 KiB
JavaScript
Raw Normal View History

/**
* 02-工具管理 API22 端点
* 路径前缀/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 StreamingResponsesystem_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 返回 StreamingResponseapplication/octet-stream
export const exportToolsApi = (params = {}) =>
apiGet(`${URL}/export${buildQueryString(params)}`, {}, true, 'blob')
// 后端 export_wsdl 返回普通 JSONsystem_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`)