Skip to content
下载量破万,《AI 原生应用架构白皮书》免费下载Know more

客户端API

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

Content-Type:application/x-www-form-urlencoded

请求URL

/nacos/v3/client/ns/instance

请求头

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

请求Body

参数名参数类型是否必填描述说明
namespaceIdString命名空间Id,默认为public
groupNameString分组名,默认为DEFAULT_GROUP
serviceNameString服务名
ipStringIP地址
portint端口号
clusterNameString集群名称,默认为DEFAULT
healthyboolean是否只查找健康实例,默认为true
weightdouble实例权重,默认为1.0
enabledboolean是否可用,默认为true
metadataJSON格式String实例元数据
ephemeralboolean是否为临时实例
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

Content-Type:application/x-www-form-urlencoded

请求URL

/nacos/v3/client/ns/instance

请求头

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

请求Body

参数名参数类型是否必填描述说明
namespaceIdString命名空间Id,默认为public
groupNameString分组名,默认为DEFAULT_GROUP
serviceNameString服务名
ipStringIP地址
portint端口号
clusterNameString集群名称,默认为DEFAULT
ephemeralboolean是否为临时实例

返回数据

返回体遵循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
healthyOnlyboolean是否只获取健康实例,默认为false

返回数据

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

参数名参数类型描述说明
dataObject[]实例列表
data.[i].ipString实例IP
data.[i].portint实例端口号
data.[i].weightdouble实例权重
data.[i].healthyboolean实例是否健康
data.[i].enabledboolean实例是否可用
data.[i].ephemeralboolean是否为临时实例
data.[i].clusterNameString实例所在的集群名称
data.[i].serviceNameString服务名
data.[i].metadatamap实例元数据
data.[i].instanceHeartBeatTimeOutint实例心跳超时时间
data.[i].ipDeleteTimeoutint实例删除超时时间
data.[i].instanceHeartBeatIntervalint实例心跳间隔

示例

  • 请求示例
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
}
]
}