Files
alibaba--nacos/specs/zh-cn/http-api/v3-api-surface.md
T
2026-07-13 12:37:52 +08:00

11 KiB
Raw Blame History

V3 HTTP API 范围

本文档说明当前 v3 HTTP API 覆盖范围。它补充 HTTP API 规范,后者定义通用设计规则。端点鉴权遵循 HTTP 鉴权规范,响应形态遵循响应与错误规范

1. 范围

本文档覆盖在 Nacos Web context path 之后,以以下 v3 前缀开头的 HTTP 端点:

前缀 API 类型 主要用户 当前鉴权范围
/v3/client Open API SDK 和自定义客户端 ApiType.OPEN_API
/v3/admin Admin API 运维人员和维护工具 ApiType.ADMIN_API
/v3/console Console API Nacos 控制台 UI 后端调用 ApiType.CONSOLE_API
/v3/auth Auth plugin API 插件提供的鉴权和初始化 API 默认鉴权插件

本文档不覆盖:

  • v1/v2 兼容 API,它们已经外置到 nacos-api-legacy-adapter
  • gRPC 请求和响应契约;
  • 未作为 v3 HTTP Controller 暴露的内部集群 API
  • AI Registry adaptor API,它有独立的兼容性边界。

2. 当前事实来源

V3 HTTP 行为当前由以下代码位置定义:

领域 代码来源
Admin core core/src/main/java/com/alibaba/nacos/core/controller/v3
Admin config config/src/main/java/com/alibaba/nacos/config/server/controller/v3
Admin naming naming/src/main/java/com/alibaba/nacos/naming/controllers/v3
Admin AI ai/src/main/java/com/alibaba/nacos/ai/controller
Console console/src/main/java/com/alibaba/nacos/console/controller/v3
Auth v3 plugin-default-impl/nacos-default-auth-plugin/src/main/java/.../controller/v3
路径常量 Commons、config Constants、naming UtilsAndCommons、AI ConstantsAuthConstants

对应的网站源文件:

  • admin/admin-api.md
  • admin/console-api.md
  • user/open-api.md

3. 当前 API 家族

本节记录当前已经实现的 API 家族。数量来自对 src/main/java 中 Spring 映射的脚本辅助盘点,应作为核对参考,而不是最终 OpenAPI 导出。

家族 近似映射数 Method 说明
/v3/client/cs/config 1 GET 供自定义 HTTP 客户端查询配置。
/v3/client/ns/instance 3 GET, POST, DELETE 注册、心跳、注销和查询服务实例。
/v3/client/ai/prompt 1 GET 运行时 Prompt 查询。
/v3/client/ai/skills 1 GET 运行时 Skill zip 下载。
/v3/client/ai/agentspecs 2 GET 运行时 AgentSpec 获取和搜索。
/v3/admin/core/* 25 GET, POST, PUT, DELETE Loader、集群、ops、命名空间、状态、插件。
/v3/admin/cs/* 25 GET, POST, PUT, DELETE 配置 CRUD、历史、监听者、容量、指标、ops。
/v3/admin/ns/* 29 GET, POST, PUT, DELETE 服务、实例、客户端、集群、健康状态、ops。
/v3/admin/ai/* 71 GET, POST, PUT, DELETE MCP、A2A、Prompt、Skill、AgentSpec、Pipeline。
/v3/console/core/* 7 GET, POST, PUT, DELETE 控制台集群和命名空间操作。
/v3/console/cs/* 17 GET, POST, DELETE 控制台配置和历史操作。
/v3/console/ns/* 11 GET, POST, PUT, DELETE 控制台服务和实例操作。
/v3/console/ai/* 67 GET, POST, PUT, DELETE 控制台 AI 管理、导入、生命周期、Pipeline。
/v3/console/copilot/* 6 GET, POST 配置和 SSE Copilot 操作。
/v3/auth/user 7 GET, POST, PUT, DELETE 默认鉴权插件中的用户登录和管理。
/v3/auth/role 4 GET, POST, DELETE 默认鉴权插件中的角色管理。
/v3/auth/permission 4 GET, POST, DELETE 默认鉴权插件中的权限管理。

4. Open API 已实现行为

已实现的 Open API 范围:

端点 行为
GET /v3/client/cs/config 查询单个配置。不提供 HTTP 长轮询。
POST /v3/client/ns/instance 注册实例,或在 heartBeat=true 时发送心跳。
DELETE /v3/client/ns/instance 注销实例。实例不存在时仍视为成功。
GET /v3/client/ns/instance/list 查询服务的启用实例列表。会过滤 disabled 实例。
GET /v3/client/ai/prompt 按版本、标签或 latest 查询 Prompt。
GET /v3/client/ai/skills 以 zip 响应下载在线 Skill 包。
GET /v3/client/ai/agentspecs 按版本、标签或 latest 查询 AgentSpec。可能允许匿名访问。
GET /v3/client/ai/agentspecs/search 搜索运行时可用的已启用 AgentSpec。

5. Admin API 已实现行为

Admin API 面向运维人员,默认使用 ApiType.ADMIN_API。Nacos 3.x 标准 Admin API 使用 /v3/admin/* 路径。v1/v2 Admin API 已从当前 Nacos 主 发行包中移除,新接入应迁移到 v3 Admin API;如果迁移期仍需使用 v1/v2 Admin API,应参考 nacos-api-legacy-adapter 方案和兼容与废弃策略规范nacos.core.auth.admin.enabled 仅表示是否启用 Admin API 鉴权,不是旧 Admin API 兼容开关。

当前模块:

  • core:连接 loader、集群节点数据、Raft 和 ID 运维、命名空间、插件和 服务端状态。
  • cs:配置 CRUD、元数据、批量操作、历史、监听者、容量、指标和 ops。
  • ns:服务、实例、集群、健康状态、客户端和注册中心 ops。
  • aiMCP、A2A、Prompt、Skill、AgentSpec 和 Pipeline 管理。

需要更明确文档化的已实现行为:

  • Naming service 创建会创建持久化服务元数据。
  • Open naming instance 心跳复用 POST /v3/client/ns/instance 端点,并在 需要重新注册时返回 INSTANCE_NOT_FOUND
  • Config 查询在返回 Admin API 详情前会解密加密内容。
  • Config 发布在未提供 encrypted data key 且适用加密处理器时会加密内容。
  • AI Prompt 在同一个 Controller 中同时包含已废弃兼容端点和新的生命周期端点。
  • Plugin detail 在已有 config 字段中返回当前 effective plugin config,并可以 追加来源、overridden 等值元数据,不改变已有字段。
  • Plugin config 更新保持完整 override map 替换语义。运行时更新必须拒绝 restart-effective 字段的变化,包括通过省略 key 移除 override。敏感字段脱敏输入只 保留同一目标 source 的原始值;目标 source 不存在该值时忽略此项,不创建 override。 source 更新成功但插件 apply 失败时返回明确的服务端错误,且不自动回滚。

6. Console API 已实现行为

Console API 服务于 Nacos Web 控制台,它不是 Open API 的同一稳定性边界。 它默认使用 ApiType.CONSOLE_API,并经常使用控制台专用资源名、 ONLY_IDENTITY 或面向 UI 的响应模型。 Console 部署、UI 和 handler 边界由 Console 规范定义。

Console API 模块在 UI 需要时会镜像 Admin 模块:

  • 服务端状态和健康检查;
  • core 集群、命名空间和插件;
  • 配置和历史;
  • 注册中心服务和实例;
  • AI 资源和 Copilot。

Console API 文档应避免把控制台专用端点呈现为推荐的自动化 API。自动化用户 应优先使用 Admin API,除非某个功能被明确设计为仅控制台可用。

7. Auth API 已实现行为

V3 Auth API 位于默认鉴权插件中,而不是 core 模块中:

/v3/auth/user
/v3/auth/role
/v3/auth/permission

已实现行为:

  • 用户管理支持创建、删除、密码更新、登录、列表和搜索。
  • 角色管理支持添加、删除、列表和搜索。
  • 权限管理支持添加、删除和列表。
  • 第一个管理员初始化由 POST /v3/auth/user/admin 实现。

默认鉴权插件随 Nacos 一起发布,因此它的 v3 auth 端点应遵循 Nacos HTTP API 规范和 鉴权插件规范

8. 文档 Gap 记录

这不是 bug 列表,而是记录当前文档和代码可能描述了不同 API 面的地方。

  • Admin AI Prompt 生命周期:代码增加 /governance/version/draft/submit/publish/force-publish/online/offline/labels/description/biz-tags;文档主要覆盖旧的 /detail/label/metadata,以及 list 和 versions。
  • Console AI Prompt 生命周期:控制台代码在 /v3/console/ai/prompt 下镜像 Admin 生命周期;文档主要覆盖旧的 /detail/label/metadata
  • Pipeline list/detail:代码暴露 /v3/*/ai/pipelines/list/detail/{pipelineId};文档展示 /v3/*/ai/pipelines/{pipelineId}
  • Force publish:代码中 Prompt、Skill 和 AgentSpec 都有 POST /force-publish 文档没有一致描述这个高权限操作。
  • AgentSpec version meta:代码中有 GET /v3/admin/ai/agentspecs/version/metaadmin API 文档未记录。
  • Auth v3:代码暴露 /v3/auth/user/role/permission;三份网站 API 文档未覆盖这个 API 面。
  • Config Open API 异常处理:ConfigOpenApiController 没有 @NacosApi 而大多数 v3 Controller 都有;Open API 文档假设统一响应。
  • Config 和 Naming ExceptionHandlerConfig 和 Naming 仍有历史模块级 ControllerAdvice,可能返回纯文本错误体。它们应在 v3 API 上收敛到 NacosApiExceptionHandler

9. 废弃兼容说明

部分 v3 AI API 在本规范建立之前已经发布,后续又被更清晰的生命周期 API 或 REST 风格 API 替代。这些旧端点应视为废弃兼容 API:

  • AI Prompt legacy 端点,例如 /detail/label/metadata
  • Pipeline 中不符合当前 /list/detail 形态的 legacy REST 风格端点。

兼容端点可以在过渡期内继续保留,但面向用户的文档应以新 API 作为主要契约。 废弃端点只应出现在兼容章节中,并按照 兼容与废弃策略规范提供迁移说明。