扩展域 API 契约基线(V1)
更新时间:2026-03-15
1. 目的
该文档作为前后端联调的稳定基线,约束扩展域 API 的请求/响应与错误结构。
2. 通用约定
- 成功响应采用统一包装(
code/message/data)。 - 列表接口统一分页参数:
page(默认 1)page_size(默认 20)
- 结构化错误通过
details扩展。
3. 接口基线
3.1 Catalog
GET /api/v1/extensions/catalogGET /api/v1/extensions/catalog/:idGET /api/v1/extensions/catalog/:id/releases
关键字段:
idextension_iddisplay_nameversion/releasesinstalledtagsdefault_install
3.2 Installation
GET /api/v1/extensions/installationsGET /api/v1/extensions/installations/:idPOST /api/v1/extensions/installPOST /api/v1/extensions/:id/enablePOST /api/v1/extensions/:id/disablePOST /api/v1/extensions/:id/upgradeDELETE /api/v1/extensions/:id/uninstall
关键字段:
installation_idinstallation_keyextension_idrelease_versionenabledstatus/desired_statescope_type/scope_idtarget_type/target_id
3.3 Runtime 与可观测
GET /api/v1/extensions/:id/capabilitiesPOST /api/v1/extensions/:id/health-checkPOST /api/v1/extensions/:id/reconcileGET /api/v1/extensions/:id/events
关键字段:
capabilities[]bindings[]health.statusevents[].typeevents[].payloadevents[].operator
4. 错误码基线
必须稳定支持:
extension_already_installeddependency_blockedmissing_dependencyversion_mismatchdependency_cycleforbiddennot_found
5. 结构化错误 details 基线
dependency_blocked:
details.code = dependency_blockeddetails.blockers = ["extension@version", ...]
extension_already_installed:
details.code = extension_already_installeddetails.installation_iddetails.scope_type/scope_iddetails.target_type/target_id
missing_dependency / version_mismatch:
details.missing/details.expected/details.actual
6. 变更规则
允许:
- 新增非必填字段
- 新增错误 details 子字段
禁止(无版本升级前):
- 删除已发布字段
- 修改字段语义
- 变更已有错误码含义
7. 下一步
- 从本基线生成 OpenAPI 或 TS 类型文件。
- 在前端建立 adapter 层,只消费基线字段。
