.agents/design/api/app-openapi-devapidoc.md
当前 devapidoc 已经接入 packages/global/openapi/path.ts 的全量开发者文档路径,应用相关接口里已有部分接口完成了 OpenAPI schema 声明,例如:
packages/global/openapi/core/app/commonpackages/global/openapi/core/app/logpackages/global/openapi/core/app/httpToolspackages/global/openapi/core/app/mcpToolspackages/global/openapi/core/app/publishChannel/playground后续计划继续把应用相关接口改为使用 schema 声明,并纳入 devapidoc,需要先统一分类边界,避免按路径随意堆叠。
devapidoc 中形成清晰的两级分类。core/app/common 继续膨胀。devapidoc 的接口必须按 API 开发规范补齐 zod schema,并在路由实现中复用同一份 schema 做入参校验。devapidoc 采用两级分类:
接口归类优先按业务语义,而不是纯路径:
/core/app/** 多数属于应用管理或工具管理。/support/outLink/** 虽然在 support 下,但业务上属于应用发布渠道。/support/openapi/** 业务上属于 API Key 管理,应放入应用管理。/support/mcp/** 业务上属于 MCP 发布管理,应放入工具管理。本轮目标是文档化和类型收敛,默认不主动改变现有接口形态;如果接口明显是写操作但使用了 GET/POST 等不合适方法,可以同步调整为更规范的 HTTP method。本轮已将更新类接口统一收敛为 PUT,删除类接口保持 DELETE。
devapidoc 的接口都需要在 packages/global/openapi/**/api.ts 中声明 query/body/response schema。parseApiInput。req.query 或 req.body。用于应用本体的创建、查询、更新、复制、删除和结构转换。
POST /core/app/createPOST /core/app/listGET /core/app/detailPUT /core/app/updateDELETE /core/app/delPOST /core/app/copyPOST /core/app/getBasicInfoPOST /core/app/transitionWorkflow建议目录:
packages/global/openapi/core/app/common后续如果 common 过大,可以拆为:
packages/global/openapi/core/app/base用于应用目录创建和路径查询。
POST /core/app/folder/createGET /core/app/folder/path建议目录:
packages/global/openapi/core/app/folder用于应用权限查询和继承权限恢复。
GET /core/app/getPermissionPUT /core/app/resumeInheritPermission建议目录:
packages/global/openapi/core/app/permission用于应用版本发布、查询和更新版本名称。
POST /core/app/version/publishPOST /core/app/version/listGET /core/app/version/detailGET /core/app/version/latestPUT /core/app/version/update建议目录:
packages/global/openapi/core/app/version用于应用模板列表和详情。
GET /core/app/template/listGET /core/app/template/detail建议目录:
packages/global/openapi/core/app/template用于应用日志字段、列表、导出、用户列表和统计数据。
GET /core/app/logs/getLogKeysPUT /core/app/logs/updateLogKeysPOST /core/app/logs/listPOST /core/app/logs/exportLogsPOST /core/app/logs/getUsersGET /proApi/core/app/logs/getTotalDataPOST /proApi/core/app/logs/getChartData建议目录:
packages/global/openapi/core/app/log用于外链/Playground 等应用发布渠道配置。普通 CRUD 和 Playground 配置纳入,第三方平台 callback 暂不纳入。
GET /support/outLink/listPOST /support/outLink/createPUT /support/outLink/updateDELETE /support/outLink/deleteGET /support/outLink/playground/configPUT /support/outLink/playground/update建议目录:
packages/global/openapi/support/outLinkpackages/global/openapi/core/app/publishChannel/playground用于应用或团队 API Key 的创建、查询、更新、删除和健康检查。
POST /support/openapi/createGET /support/openapi/listPUT /support/openapi/updateDELETE /support/openapi/deleteGET /support/openapi/health建议目录:
packages/global/openapi/support/openapi用于 HTTP 工具集应用的创建、更新、OpenAPI schema 解析和工具运行测试。
POST /core/app/httpTools/createPUT /core/app/httpTools/updatePOST /core/app/httpTools/getApiSchemaByUrlPOST /core/app/httpTools/runTool建议目录:
packages/global/openapi/core/app/httpTools用于 MCP 工具集应用的创建、更新、工具解析、子工具查询和工具运行测试。
POST /core/app/mcpTools/createPUT /core/app/mcpTools/updatePOST /core/app/mcpTools/getToolsGET /core/app/mcpTools/getChildrenPOST /core/app/mcpTools/runTool建议目录:
packages/global/openapi/core/app/mcpTools用于管理 MCP 发布 key 及其绑定的应用。
GET /support/mcp/listPOST /support/mcp/createPUT /support/mcp/updateDELETE /support/mcp/delete建议目录:
packages/global/openapi/support/mcpServer本轮不处理系统工具相关接口。
暂不纳入:
/core/app/tool/getSystemToolTemplates/core/app/tool/getPreviewNode/core/app/tool/getVersionList/core/app/tool/path/core/plugin/team/list/core/plugin/team/toolDetail/core/plugin/team/toggleInstall这些接口主要服务应用构建页的工具选择、团队工具安装和系统工具查看,后续可以单独作为“系统工具/团队工具”模块处理。
本轮不放入应用管理。
暂不纳入:
/core/ai/skill/**AI Skill 是独立资源,虽然应用构建页会读取 skill 列表和详情,但模块边界应放在“AI 技能管理”,不应混入应用接口。
暂不纳入:
GET /core/chat/outLink/init/support/outLink/wechat/**/support/outLink/feishu/[token]/support/outLink/wecom/[token]/support/outLink/dingtalk/[token]/support/outLink/offiaccount/[token]这些接口更偏运行时入口或第三方平台回调,不适合放在普通开发者接口文档里。
暂不纳入:
/mcp/app/[key]/mcp/support/mcp/server/toolList/support/mcp/server/toolCall这些接口偏 MCP 协议运行入口或服务端内部调用,和普通 REST OpenAPI 文档形态不同。后续如果要公开,应单独设计 MCP 文档。
建议新增或调整 tag:
appCommon: '基础应用',
appFolder: '应用文件夹',
appPer: '应用权限',
appVersion: '应用版本',
appTemplate: '应用模板',
appLog: '应用日志',
publishChannel: '发布渠道',
apiKey: 'API Key 管理',
httpTools: 'HTTP 工具',
mcpTools: 'MCP 工具',
mcpServer: 'MCP 发布管理'
建议 openAPITagGroups:
{
name: '应用管理',
tags: [
DevApiTagsMap.appCommon,
DevApiTagsMap.appFolder,
DevApiTagsMap.appPer,
DevApiTagsMap.appVersion,
DevApiTagsMap.appTemplate,
DevApiTagsMap.appLog,
DevApiTagsMap.publishChannel,
DevApiTagsMap.apiKey
]
},
{
name: '工具管理',
tags: [DevApiTagsMap.httpTools, DevApiTagsMap.mcpTools, DevApiTagsMap.mcpServer]
}
packages/global/openapi/core/app/
common/
folder/
permission/
version/
template/
log/
httpTools/
mcpTools/
publishChannel/
packages/global/openapi/support/
openapi/
outLink/
mcpServer/
openAPITagGroups 的“应用管理”“工具管理”两级分类。getPermission 从 common 迁移到 permission,并补齐 resumeInheritPermission。projects/app/src/pages/api/** 对应路由中使用 schema 校验入参,并在必要位置校验返回值;没有 schema 的接口需要按 API skill 先补齐 schema。devapidoc 展示完整,openapi API Key 文档不引入未开放接口。