跳转到内容

Open API 手册

0. Swagger 类型文档

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

1. 文档规定

1.1. API 统一返回体格式

2.0版本Open API,所有接口请求的响应均为json类型的返回体,返回体具有相同的格式

{
"code": 0,
"message": "success",
"data": {}
}

返回体中各字段的含义如下表所示

名称类型描述
code int错误码,0代表执行成功,非0代表执行失败的某一种情况
messageString错误码提示信息,执行成功为”success
data任意类型返回数据,执行失败时为详细出错信息

由于执行成功的情况下code字段与message字段相同,后续在介绍接口的返回结果时,只介绍返回数据的data字段

1.2. API 错误码汇总

API接口返回体中的错误码及对应提示信息汇总见下表

错误码提示信息含义
0success成功执行
10000parameter missing参数缺失
10001access denied访问拒绝
10002data access error数据访问错误
20001'tenant' parameter errortenant参数错误
20002parameter validate error参数验证错误
20003MediaType Error请求的MediaType错误
20004resource not found资源未找到
20005resource conflict资源访问冲突
20006config listener is null监听配置为空
20007config listener error监听配置错误
20008invalid dataId无效的dataId(鉴权失败)
20009parameter mismatch请求参数不匹配
21000service name errorserviceName服务名错误
21001weight errorweight权重参数错误
21002instance metadata error实例metadata元数据错误
21003instance not foundinstance实例不存在
21004instance errorinstance实例信息错误
21005service metadata error服务metadata元数据错误
21006selector error访问策略selector错误
21007service already exist服务已存在
21008service not exist服务不存在
21009service delete failure存在服务实例,服务删除失败
21010healthy param misshealthy参数缺失
21011health check still running健康检查仍在运行
22000illegal namespace命名空间namespace不合法
22001namespace not exist命名空间不存在
22002namespace already exist命名空间已存在
23000illegal state状态state不合法
23001node info error节点信息错误
23002node down failure节点离线操作出错
30000server error其他内部错误

2. 配置管理

2.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
}
}

3. 服务发现

3.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"
}

3.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"
}

3.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
}
]
}