跳转到内容
OpenClaw 不踩坑恶意 Skills ,企业需 Skills Registry:Nacos 3.2 发布点此了解

客户端API

使用默认鉴权插件时如何获取和配置访问凭据,请参见 OpenAPI 如何配置鉴权信息

0. 客户端API 相关说明

0.1. 统一路径格式

Nacos的客户端API,使用统一的Path格式进行的规范。格式为[/$nacos.server.contextPath]/v3/client/[module]/[subPath]..., 其中

  • $nacos.server.contextPath:客户端API的根路径,默认为/nacos,可以通过nacos.server.contextPath配置项进行修改。
  • module:客户端API模块名称,例如servercsnscore等。
  • subPath:客户端API的子路径,例如statenamespaceconfig等, 可能有多层子路径。

下列列出的客户端API,采用默认$nacos.server.contextPath的情况进行展示,若已修改部署环境中的$nacos.server.contextPath 配置项,请自行修改调用API时的请求URL。

同时下列列出的客户端API样例中,均采用默认Nacos Web Server的端口进行展示,若已修改部署环境中的$nacos.server.main.port 配置项,请自行修改调用API时的请求URL。

0.2. Swagger 类型文档

Nacos 3.X 的客户端 Open API 也提供了Swagger风格的文档,您可以通过访问Nacos Swagger HTTP 客户端 API查看。

1. 配置管理

1.1. 获取配置

接口描述

获取指定配置

请求方式

GET

请求URL

/nacos/v3/client/cs/config

请求头

参数名参数类型是否必填描述说明
User-Agentstring用户代理,默认为空,通常为`Nacos-${program-language}-Client
${version}
Client-Versionstring客户端版本,默认为空,通常为`Nacos-${program-language}-Client
${version}

请求参数

参数名类型必填参数描述
namespaceIdstring命名空间,默认为public''相同
groupNamestring配置分组名
dataIdstring配置名

返回数据

返回体遵循Nacos open API 统一返回体格式,下表只阐述data字段中的返回参数。

参数名参数类型描述
contentstring配置内容
encryptedDataKeystring配置的加解密密钥,仅在使用配置加解密插件时有此值
contentTypestring配置的类型,如TEXT,JSON
md5string配置的md5值
lastModifiedstring配置的最后修改时间
betaboolean配置是否有灰度配置

其他字段为预留字段,暂时无用,忽略即可。

示例

  • 请求示例
Terminal window
curl -X GET '127.0.0.1:8848/nacos/v3/client/cs/config?dataId=test&groupName=test'
  • 返回示例
{
"code": 0,
"message": "success",
"data": {
"resultCode": 200,
"errorCode": 0,
"message": null,
"requestId": null,
"content": "test",
"encryptedDataKey": null,
"contentType": "text",
"md5": "098f6bcd4621d373cade4e832627b4f6",
"lastModified": 1743151634823,
"tag": null,
"beta": false,
"success": true
}
}

2. 服务发现

2.1. 注册实例/续约实例

接口描述

注册或续约一个实例

请求方式

POST

请求URL

/nacos/v3/client/ns/instance

请求头

参数名参数类型是否必填描述说明
User-Agentstring用户代理,默认为空,通常为`Nacos-${program-language}-Client
${version}
Client-Versionstring客户端版本,默认为空,通常为`Nacos-${program-language}-Client
${version}

请求参数

参数名参数类型必填参数描述
namespaceIdstring命名空间Id,默认为public
groupNamestring分组名,默认为DEFAULT_GROUP
serviceNamestring服务名
ipstringIP地址
portinteger端口号
clusterNamestring集群名称,默认为DEFAULT
healthyboolean是否只查找健康实例,默认为true
weightnumber实例权重,默认为1.0
enabledboolean是否可用,默认为true
metadatastring实例元数据
heartBeatboolean是否为续约请求,默认为false

返回数据

返回体遵循Nacos open API 统一返回体格式,下表只阐述data字段中的返回参数。

参数名参数类型描述
datastring是否注册、续约成功,成功时返回ok,失败时返回失败原因。

示例

  • 请求示例
Terminal window
# 注册实例
curl -X POST "127.0.0.1:8848/nacos/v3/client/ns/instance" -d "serviceName=test1&ip=127.0.0.1&port=3306"
# 续约实例
curl -X POST "127.0.0.1:8848/nacos/v3/client/ns/instance" -d "serviceName=test1&ip=127.0.0.1&port=3306&heartBeat=true"
  • 返回示例
{
"code": 0,
"message": "success",
"data": "ok"
}

2.2. 注销实例

接口描述

注销指定实例

请求方式

DELETE

请求URL

/nacos/v3/client/ns/instance

请求头

参数名参数类型是否必填描述说明
User-Agentstring用户代理,默认为空,通常为`Nacos-${program-language}-Client
${version}
Client-Versionstring客户端版本,默认为空,通常为`Nacos-${program-language}-Client
${version}

请求参数

参数名参数类型必填参数描述
namespaceIdstring命名空间Id,默认为public
groupNamestring分组名,默认为DEFAULT_GROUP
serviceNamestring服务名
ipstringIP地址
portinteger端口号
clusterNamestring集群名称,默认为DEFAULT

返回数据

返回体遵循Nacos open API 统一返回体格式,下表只阐述data字段中的返回参数。

参数名参数类型描述
datastring是否注销成功,成功时返回ok,失败时返回失败原因。

示例

  • 请求示例
Terminal window
curl -X DELETE "127.0.0.1:8848/nacos/v3/client/ns/instance?serviceName=test1&ip=127.0.0.1&port=3306"
  • 返回示例
{
"code": 0,
"message": "success",
"data": "ok"
}

2.3. 查询指定服务的实例列表

接口描述

查询指定服务下的实例详情信息列表

请求方式

GET

请求URL

/nacos/v3/client/ns/instance/list

请求头

参数名参数类型是否必填描述说明
User-Agentstring用户代理,默认为空,通常为`Nacos-${program-language}-Client
${version}
Client-Versionstring客户端版本,默认为空,通常为`Nacos-${program-language}-Client
${version}

请求参数

参数名参数类型是否必填描述说明
namespaceIdstring命名空间Id,默认为public
groupNamestring分组名,默认为DEFAULT_GROUP
serviceNamestring服务名
clusterNamestring集群名称,默认为DEFAULT

返回数据

返回体遵循Nacos open API 统一返回体格式,下表只阐述data字段中的返回参数。

参数名参数类型描述说明
dataObject[]实例列表
data.[i].ipstring实例IP
data.[i].portinteger实例端口号
data.[i].weightnumber实例权重
data.[i].healthyboolean实例是否健康
data.[i].enabledboolean实例是否可用
data.[i].ephemeralboolean是否为临时实例
data.[i].clusterNamestring实例所在的集群名称
data.[i].serviceNamestring服务名
data.[i].metadatamap实例元数据
data.[i].instanceHeartBeatTimeOutinteger实例心跳超时时间
data.[i].ipDeleteTimeoutinteger实例删除超时时间
data.[i].instanceHeartBeatIntervalinteger实例心跳间隔

示例

  • 请求示例
Terminal window
curl -X GET '127.0.0.1:8848/nacos/v3/client/ns/instance/list?serviceName=test1'
  • 返回示例
{
"code": 0,
"message": "success",
"data": [
{
"ip": "127.0.0.1",
"port": 3306,
"weight": 1.0,
"healthy": true,
"enabled": true,
"ephemeral": true,
"clusterName": "DEFAULT",
"serviceName": "DEFAULT_GROUP@@test1",
"metadata": {},
"ipDeleteTimeout": 30000,
"instanceIdGenerator": "simple",
"instanceHeartBeatInterval": 5000,
"instanceHeartBeatTimeOut": 15000
}
]
}

3. AI 相关

3.1. 查询 Prompt

接口描述

通过该接口,可按 label、version 或 latest 查询 Prompt,优先级 label > version > latest;支持 md5 条件返回 304。

请求方式

GET

请求URL

/nacos/v3/client/ai/prompt

请求参数

参数名类型必填参数描述
namespaceIdstring命名空间,默认为public
promptKeystringPrompt 键名
versionstring版本号,与 label、latest 三选一
labelstring标签,与 version、latest 三选一
md5string若与服务端一致则返回 304

返回数据

返回体遵循Nacos open API 统一返回体格式,下表只阐述data字段中的返回参数。

参数名参数类型描述
promptKeystringPrompt 键名
versionstring版本号
templatestringPrompt 模板内容
md5string内容 md5,用于 304 判断

示例

  • 请求示例
Terminal window
curl -X GET '127.0.0.1:8848/nacos/v3/client/ai/prompt?promptKey=myPrompt'
  • 返回示例
{
"code": 0,
"message": "success",
"data": {
"promptKey": "myPrompt",
"version": "1.0",
"template": "You are a helpful assistant.",
"md5": "..."
}
}

3.2. 获取 AgentSpec

接口描述

通过该接口,可按命名空间、名称、版本号或 label 获取指定 AgentSpec 详情。

请求方式

GET

请求URL

/nacos/v3/client/ai/agentspecs

请求参数

参数名类型必填参数描述
namespaceIdstring命名空间,默认为public
namestringAgentSpec 名称
versionstringAgentSpec 版本号
labelstringAgentSpec 标签

返回数据

返回体遵循Nacos open API 统一返回体格式,下表只阐述data字段中的返回参数。

参数名参数类型描述说明
namespaceIdstringAgentSpec 所属命名空间
namestringAgentSpec 名称
descriptionstringAgentSpec 描述
bizTagsstringAgentSpec 业务标签
contentstringAgentSpec 内容
resourceobjectAgentSpec 资源信息

示例

  • 请求示例
Terminal window
curl -X GET '127.0.0.1:8848/nacos/v3/client/ai/agentspecs?name=my-agent'
  • 返回示例
{
"code": 0,
"message": "success",
"data": {}
}

3.3. 搜索 AgentSpec

接口描述

通过该接口,可按命名空间和关键词分页搜索 AgentSpec。

请求方式

GET

请求URL

/nacos/v3/client/ai/agentspecs/search

请求参数

参数名类型必填参数描述
namespaceIdstring命名空间,默认为public
keywordstring搜索关键字
pageNointeger页码,通常从 1 开始
pageSizeinteger每页返回条数

返回数据

返回体遵循Nacos open API 统一返回体格式,下表只阐述data字段中的返回参数。

参数名参数类型描述说明
datastringAgentSpec 搜索结果(分页结构,具体字段以实际返回为准)

示例

  • 请求示例
Terminal window
curl -X GET '127.0.0.1:8848/nacos/v3/client/ai/agentspecs/search?keyword=agent&pageNo=1&pageSize=10'
  • 返回示例
{
"code": 0,
"message": "success",
"data": {}
}

3.4. 下载 Skill

接口描述

通过该接口,可按命名空间、名称、版本号或 label 下载 Skill ZIP 文件。

请求方式

GET

请求URL

/nacos/v3/client/ai/skills

请求参数

参数名类型必填参数描述
namespaceIdstring命名空间,默认为public
namestringSkill 名称
versionstringSkill 版本号
labelstringSkill 标签

示例

  • 请求示例
Terminal window
curl -X GET '127.0.0.1:8848/nacos/v3/client/ai/skills?name=my-skill'
  • 返回示例
{
"code": 0,
"message": "success",
"data": {}
}