华为云用户手册

  • 响应示例 状态码: 200 查询成功。 {"schemas": [{"schemaId": "xxxxmvc","schema": "---\nswagger: \"2.0\"\ninfo:\n version: \"1.0.0\"\n title: \"swagger definition for com.service.provider.controller.ProviderImpl\"\n x-java-interface: \"cse.gen.springmvc.provider.provider.ProviderImplIntf\"\nbasePath: \"/provider\"\nconsumes:\n- \"application/json\"\nproduces:\n- \"application/json\"\npaths:\n /helloworld:\n get:\n operationId: \"helloworld\"\n produces:\n - \"application/json\"\n parameters:\n - name: \"name\"\n in: \"query\"\n required: true\n type: \"string\"\n responses:\n 200:\n description: \"response of 200\"\n schema:\n type: \"string\"\nxxxx","summary": "abcda7b4072ef2d7a5fc9aefccf03e5548029ae31c6cd5fc29da7685d6d9e14adea3"}]}
  • URI DELETE /v4/{project_id}/registry/microservices/{service_id}/instances/{instance_id} 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 请填固定值:default。 service_id 是 String 微服务实例唯一标识。字符长度不超过64位, 正则表达式为^[A-Za-z0-9_.-]*$。获取方法请参考根据service_id查询微服务实例。 instance_id 是 String 微服务实例唯一标识。字符长度不超过64位, 正则表达式为^[A-Za-z0-9_.-]*$。获取方法请参考根据service_id查询微服务实例。
  • 响应参数 状态码: 400 表3 响应Body参数 参数 参数类型 描述 errorCode String 错误代码。 errorMessage String 错误信息。 detail String 详细定位信息。 状态码: 500 表4 响应Body参数 参数 参数类型 描述 errorCode String 错误代码。 errorMessage String 错误信息。 detail String 详细定位信息。
  • 操作步骤 注册微服务my-provider。 调用创建微服务静态信息接口,请求示例如下。 curl -k -H "x-domain-name:default" -XPOST "https://{cse_endpoint}/v4/default/registry/microservices" -d '{ "service": { "serviceName": "my-provider", "appId": "default", "version": "1.0.0", "description": "test", "level": "MIDDLE", "status": "UP" }}' 返回结果: {"serviceId":"918282e8562dc5fdc9a8dcd4d1baabb492190aa4"} 得到的serviceId,后续示例中以{providerServiceId}代替。 注册微服务my-provider的实例。 调用注册微服务实例接口。实例有效期1小时,到期自动下线。假设provider实例监听的地址为127.0.0.1:8080,请求示例如下。 curl -k -H "x-domain-name:default" -XPOST "https://{cse_endpoint}/v4/default/registry/microservices/{providerServiceId}/instances" -d '{ "instance": { "hostName": "test", "endpoints": [ "rest:127.0.0.1:8080" ], "status": "UP", "healthCheck": { "mode": "push", "interval": 900, "times": 3 } }}' 返回结果: {"instanceId":"2be605a095ed11eabcbe0255ac100fa3"} 注册微服务my-consumer。 调用创建微服务静态信息接口,请求示例如下。 curl -k -H "x-domain-name:default" -XPOST "https://{cse_endpoint}/v4/default/registry/microservices" -d '{ "service": { "serviceName": "my-consumer", "appId": "default", "version": "1.0.0", "description": "test", "level": "MIDDLE", "status": "UP" }}' 返回结果: {"serviceId":"9db248934c31fc754d6e922b48ede4a5c004d3c1"} 得到的serviceId,后续示例中以{consumerServiceId}代替。 my-consumer发现my-provider的实例。 调用按条件查询微服务实例接口,consumer带着自身的serviceId去服务中心查询provider的实例信息,请求示例如下。 curl -k -H "x-domain-name:default" -H "X-ConsumerId:{consumerServiceId}" -XGET "https://{cse_endpoint}/v4/default/registry/instances?appId=default&serviceName=my-provider&version=0.0.0%2B" 返回结果: { "instances": [ { "instanceId": "2be605a095ed11eabcbe0255ac100fa3", "serviceId": "918282e8562dc5fdc9a8dcd4d1baabb492190aa4", "endpoints": [ "rest:127.0.0.1:8080" ], "hostName": "test", "status": "UP", "healthCheck": { "mode": "push", "interval": 150, "times": 3 }, "timestamp": "1589465646", "modTimestamp": "1589465646", "version": "1.0.0" } ]} 在实际业务中,consumer可从实例查询结果中的"endpoint"字段获取provider实例的地址,发起业务调用。 您还可以进入微服务引擎控制台的“微服务目录”,查看服务注册信息。
  • 请求方法 HTTP方法(也称为操作或动词),它告诉服务您正在请求什么类型的操作。 GET:请求服务器返回指定资源。 PUT:请求服务器更新指定资源。 POST:请求服务器新增资源或执行特殊操作。 DELETE:请求服务器删除指定资源,如删除对象等。 HEAD:请求服务器资源头部。 PATCH:请求服务器更新资源的部分内容。当资源不存在的时候,PATCH可能会去创建一个新的资源。 在获取用户Token的URI部分,您可以看到其请求方法为“POST”,则其请求为: POST https://iam.cn-north-1.myhuaweicloud.com/v3/auth/tokens
  • 请求消息体 请求消息体通常以结构化格式发出,与请求消息头中Content-type对应,传递除请求消息头之外的内容。若请求消息体中参数支持中文,则Content-type中需声明字符编码方式为utf-8,例如,Content-Type: application/json;utf-8。 每个接口的请求消息体内容不同,也并不是每个接口都需要有请求消息体(或者说消息体为空),GET、DELETE操作类型的接口就不需要消息体,消息体具体内容需要根据具体接口而定。 对于获取用户Token接口,您可以从接口的请求部分看到所需的请求参数及参数说明。将消息体加入后的请求如下所示,加粗的斜体字段需要根据实际值填写,其中username为用户名,domainname为用户所属的帐号名称,********为用户登录密码,xxxxxxxxxxxxxxxxxx为project的名称,可以从地区和终端节点处获取。 scope参数定义了Token的作用域,上面示例中获取的Token仅能访问project下的资源。您还可以设置Token的作用域为某个帐号下所有资源或帐号的某个project下的资源,详细定义请参见获取用户Token。 POST https://iam.cn-north-1.myhuaweicloud.com/v3/auth/tokens Content-Type: application/json { "auth": { "identity": { "methods": [ "password" ], "password": { "user": { "name": "username", "password": "********", "domain": { "name": "domainname" } } } }, "scope": { "project": { "name": "xxxxxxxxxxxxxxxxxx" } } } } 到这里为止这个请求需要的内容就具备齐全了,您可以使用curl命令行等工具或直接编写代码等方式发送请求调用API。对于获取用户Token接口,返回的响应消息头中“x-subject-token”就是需要获取的用户Token。有了Token之后,您就可以使用Token认证调用其他API。
  • 请求消息头 附加请求头字段,如指定的URI和HTTP方法所要求的字段。例如定义消息体类型的请求头“Content-Type”,请求鉴权信息等。 如下公共消息头需要添加到请求中。 Content-Type:消息体的类型(格式),必选,默认取值为“application/json”,有其他取值时会在具体接口中专门说明。 X-Auth-Token:用户Token,可选,当使用Token方式认证时,必须填充该字段。用户Token也就是调用获取用户Token接口的响应值,该接口是唯一不需要认证的接口。 Authorization:微服务引擎实例的帐号Token,可选,当使用微服务引擎安全认证时,必须填充该字段。帐号Token是调用获取微服务引擎专享版用户Token接口的响应值,该接口是唯一不需要认证的接口。 对于获取用户Token接口,由于不需要认证,所以只添加“Content-Type”即可,添加消息头后的请求如下所示。 POST https://iam.cn-north-1.myhuaweicloud.com/v3/auth/tokens Content-Type: application/json
  • 请求URI 请求URI由如下部分组成。 {URI-scheme} :// {Endpoint} / {resource-path} ? {query-string} 尽管请求URI包含在请求消息头中,但大多数语言或框架都要求您从请求消息中单独传递它,所以在此单独强调。 URI-scheme:表示用于传输请求的协议,当前所有API均采用HTTPS协议。 Endpoint:指定承载REST服务端点的服务器域名或IP,不同服务不同区域的Endpoint不同,您可以从地区和终端节点处获取。例如IAM服务在“华北-北京一”区域的Endpoint为“iam.cn-north-1.myhuaweicloud.com”。当获取微服务引擎实例的帐号Token时,Endpoint取值为服务注册发现地址。 resource-path:资源路径,即API访问路径。从具体API的URI模块获取,例如“获取用户Token”API的resource-path为“/v3/auth/tokens”。 query-string:查询参数,是可选部分,并不是每个API都有查询参数。查询参数前面需要带一个“?”,形式为“参数名=参数取值”,例如“limit=10”,表示查询不超过10条数据。 例如您需要获取IAM在“华北-北京一”区域的Token,则需使用“华北-北京一”区域的Endpoint(iam.cn-north-1.myhuaweicloud.com),并在获取用户Token的URI部分找到resource-path(/v3/auth/tokens),拼接起来如下所示。 https://iam.cn-north-1.myhuaweicloud.com/v3/auth/tokens 图1 URI示意图 为查看方便,在每个具体API的URI部分,只给出resource-path部分,并将请求方法写在一起。这是因为URI-scheme都是HTTPS,而Endpoint在同一个区域也相同,所以简洁起见将这两部分省略。
  • 状态码 状态码如表1所示。 表1 状态码 状态码 编码 错误码说明 200 - 操作成功。 204 NoContent 操作成功。 400 BadRequest 非法请求。 建议直接修改该请求为合法请求,不要再重试该请求。 401 Unauthorized 在客户端提供认证信息后,返回该状态码,表明服务端指出客户端所提供的认证信息不正确或非法。 404 NotFound 所请求的资源不存在。 建议直接修改该请求,不要重试该请求。 409 Conflict 该资源已存在。 422 UnprocessableEntity 请求格式正确,但是由于含有语义错误,无法响应。 500 InternalServerError 表明服务端能被请求访问到,但是不能理解用户的请求。 父主题: 附录
  • 调用说明 CSE提供了REST(Representational State Transfer)风格API,支持您通过HTTPS请求调用。 调用微服务引擎专享版的ServiceComb API的方法如下: 登录CSE控制台。 选择“微服务引擎”下拉列表中待调用接口的微服务引擎。 调用认证、微服务、契约、微服务实例、依赖关系接口时,在“服务发现 & 配置”区域,查看或单击复制“服务注册发现地址”。 调用配置管理接口时,在“服务发现 & 配置”区域,查看或单击复制“配置中心地址”。 参考如何调用API调用该接口,在请求URI中,替换{Endpoint}为已获取到的服务注册发现地址。 父主题: ServiceComb API
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 id String 创建的微服务引擎专享版ID。 name String 创建的微服务引擎专享版名称。 jobId Integer 微服务引擎专享版执行的任务ID。 状态码: 400 表5 响应Body参数 参数 参数类型 描述 error_code String 错误码。 error_msg String 错误信息。 状态码: 500 表6 响应Body参数 参数 参数类型 描述 error_code String 错误码。 error_msg String 错误信息。
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 id String 创建的微服务引擎专享版ID。 name String 创建的微服务引擎专享版名称。 jobId Integer 微服务引擎专享版执行的任务ID。 状态码: 400 表5 响应Body参数 参数 参数类型 描述 error_code String 错误码。 error_msg String 错误信息。 状态码: 500 表6 响应Body参数 参数 参数类型 描述 error_code String 错误码。 error_msg String 错误信息。
  • 响应示例 {"id": "891bf21a-4024-4f47-b38c-bd259ca8f10a","name": "test","description": "","authType": "RBAC","flavor": "cse.s1.medium2","payment": "0","version": "2.3.1","latestVersion": "2.3.3","status": "Creating","beDefault": true,"createUser": "test","createTime": 1635576800332,"cceSpec": {"id": 7465,"engineId": "891bf21a-4024-4f47-b38c-bd259ca8f10a","specType": "CCE","cluster": null,"clusterId": "41115a6f-912f-11eb-9af9-0255ac100188","clusterNodes": {"clusterNodes": [{"id": "c13aaf5c-2192-421c-8e03-522e2b9a06b5","az": "test","ip": "172.31.25.277","label": "test","status": "Active"}]},"flavor": null,"region": "test","version": "","extendParam": ""},"externalEntrypoint": {"externalAddress": "192.168.0.169","publicAddress": "","serviceEndpoint": {"kie": {"masterEntrypoint": "https://192.168.0.169:30110","masterEntrypointIpv6": "https://[2407:c080:11f0:11:b11d:675c:97ab:65f6]:30110","slaveEntrypoint": null,"slaveEntrypointIpv6": null,"type": "REGISTRY"}, "serviceCenter": { "masterEntrypoint": "https://192.168.0.169:30100", "masterEntrypointIpv6": "https://[2407:c080:11f0:11:b11d:675c:97ab:65f6]:30100", "slaveEntrypoint": null, "slaveEntrypointIpv6": null, "type": "REGISTRY" }},"publicServiceEndpoint": {"kie": {"masterEntrypoint": "https://192.168.0.169:30110","masterEntrypointIpv6": null,"slaveEntrypoint": null,"slaveEntrypointIpv6": null,"type": "REGISTRY"}, "serviceCenter": { "masterEntrypoint": "https://192.168.0.169:30100","masterEntrypointIpv6": null,"slaveEntrypoint": null,"slaveEntrypointIpv6": null,"type": "REGISTRY" }}},"reference": {"vpc": "vpc-test", "vpcId": "09902850-9454-4715-9764-018f0c3701hy","azList": ["test"],"networkId": "88550801-e892-4f8e-b21b-f7147f604f69","subnetCidr": "192.168.0.0/24","subnetCidrV6": "2407:c080:11f0:11::/64","subnetGateway": "192.168.0.2","publicIpId": null,"serviceLimit": 200,"instanceLimit": 200,"inputs": {"is_arm_cluster": "false","nodeFlavor": "s6.large.2"}},"latestJobId": 12339,"enterpriseProjectId": "0","enterpriseProjectName": "default","engineAdditionalActions": ["Retry"],"specType": "CSE2","type": "CSE","projectId": "string","vmIds": [""]}
  • 响应示例 {"total": 1,"data": [{"id": "891bf21a-4024-4f47-b38c-bd259ca8f10a","name": "test","enterpriseProjectId": "0","enterpriseProjectName": "default","type": "CSE","description": "","flavor": "cse.s1.medium2","payment": "0","authType": "RBAC","status": "Available","externalAddress": "192.168.0.169","serviceEndpoint": {"kie": {"masterEntrypoint": "https://192.168.0.169:30110","masterEntrypointIpv6": "https://[2407:c080:11f0:11:b11d:675c:97ab:65f6]:30110","slaveEntrypoint": null,"slaveEntrypointIpv6": null,"type": "REGISTRY"}, "serviceCenter": { "masterEntrypoint": "https://1192.168.0.169:30100", "masterEntrypointIpv6": "https://[2407:c080:11f0:11:b11d:675c:97ab:65f6]:30100", "slaveEntrypoint": null, "slaveEntrypointIpv6": null, "type": "REGISTRY" }},"publicAddress": "","publicServiceEndpoint": {"kie": {"masterEntrypoint": "","masterEntrypointIpv6": "","slaveEntrypoint": "","slaveEntrypointIpv6": "","type": "REGISTRY"}, "serviceCenter": { "masterEntrypoint": "", "masterEntrypointIpv6": "", "slaveEntrypoint": "", "slaveEntrypointIpv6": "", "type": "REGISTRY" }},"totalInstance": 200,"usedInstance": 0,"availableInstance": 200,"version": "2.3.1","latestVersion": "2.3.3","createTime": 1635576800332,"dueTo": 4102415999000,"latestJobId": 12339,"engineAdditionalActions": ["Retry"],"specType": "CSE2","reference": {"vpc": "vpc-test", "vpcId": "09902850-9454-4715-9764-018f0c3701hy","azList": ["test"],"networkId": "88550801-e892-4f8e-b21b-f7147f604f69","subnetCidr": "192.168.0.0/24","subnetCidrV6": "2407:c080:11f0:11::/64","subnetGateway": "192.168.0.2","publicIpId": null,"serviceLimit": 200,"instanceLimit": 200,"inputs": {"is_arm_cluster": "false","nodeFlavor": "s6.large.2"}}}]}
  • 响应示例 状态码: 200 用于获取用户Token的响应结构体。 { "token" : "****bGciOiJSUzUxMiIsInR5cCI6IkpXVCJ9.eyJhY2NvdW50Ijoicm9vdCIsImV4cCI6MTY1MDU5MTcwMSwicm9sZXMiOlsiYWRtaW4iXX0.WKwNAjaYMMCSjNX0qCGCeyh13FJRzLousxoXlThdkMwkH- pXEmG51_SguH0LlHOZoIc8gNJq-ilQg4bxTo1s0pnQZIS3wma0qvE-MzaYnFguTuHM7rxD7eZdwnbUe3dhnw9xRqR1hcd-lTuBbLoL9fbED4U_63IoEDyBCJl9D_l0F86uGzpUysCvC-t6MrJHgi7miUaO7ZZQmSAUNhmbEoN8IIVp-QtP_cWNWtWaFO-eoQrmCT2FdlYiB9MCuELr9-5EGM_mFLPgs6E4fyIGiGHy7IwoGUKOCW5w6Jb0l-2JxeUe3eOl5Md5kzOIAE_EYUATxCbJ5GmgpSSJf*****"}
  • 响应参数 状态码: 200 表2 响应Body参数 参数 参数类型 描述 token String 获取的用户Token,有效期为12小时。 状态码: 401 表3 响应Body参数 参数 参数类型 描述 errorCode String 错误代码。 errorMessage String 错误信息。 detail String 详细定位信息。 状态码: 500 表4 响应Body参数 参数 参数类型 描述 errorCode String 错误代码。 errorMessage String 错误信息。 detail String 详细定位信息。
  • 请求示例 创建一个微服务的静态信息,其微服务名为test,微服务版本为1.0.0,rule的类型为白名单,实例的主机信息为instanceTest,访问地址为rest:127.0.0.1:8080。 POST https://{endpoint}/v4/{project_id}/registry/microservices{"service": {"appId": "default","serviceName": "test","version": "1.0.0","description": "this is a test"},"rules": [{"ruleType": "WHITE","attribute": "tag_123","pattern": "aaa"}],"instances": [{"hostName": "instanceTest","endpoints": ["rest:127.0.0.1:8080"]}],"tags": {"test_tag1": "test_tag1","test_tag2": "test_tag2","test_tag3": "test_tag3"}}
  • 响应参数 状态码: 200 表11 响应Body参数 参数 参数类型 描述 serviceId String 微服务唯一标识。 状态码: 400 表12 响应Body参数 参数 参数类型 描述 errorCode String 错误代码。 errorMessage String 错误信息。 detail String 详细定位信息。 状态码: 500 表13 响应Body参数 参数 参数类型 描述 errorCode String 错误代码。 errorMessage String 错误信息。 detail String 详细定位信息。
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 Authorization 否 String 若微服务引擎专享版开启了安全认证,此参数必填。否则,无此参数。 开启了安全认证的微服务引擎专享版Token,格式为: Authorization:Bearer {Token} Token获取方法,请参考获取微服务引擎专享版用户Token。 表3 请求Body参数 参数 是否必选 参数类型 描述 service 是 MicroService object 微服务信息。 rules 否 Array of Rule objects 黑白名单信息。 instances 否 Array of MicroServiceInstance objects 实例信息。 tags 否 Object 微服务扩展属性,可以自定义KEY和相应的Value。长度最小1字节。 表4 MicroService 参数 是否必选 参数类型 描述 serviceId 否 String 微服务唯一标识。字符长度为1~64。正则表达式为^.*$。 environment 否 String 用于区分微服务环境,取值为development、testing、acceptance、production。当配置为development、testing或acceptance时,可以通过批量上传schemas接口新增或者修改已存在的Schema;当配置为production时,则不可以新增或者修改Schema。默认值development。 appId 否 String 应用App唯一标识。字符长度为1~160。 正则表达式为^[a-zA-Z0-9]$|^[a-zA-Z0-9][a-zA-Z0-9_-.][a-zA-Z0-9]$。 serviceName 是 String 微服务名称,同一个App要保证唯一。字符长度为1~128。 正则表达式为^[a-zA-Z0-9]$|^[a-zA-Z0-9][a-zA-Z0-9_-.][a-zA-Z0-9]$。 version 否 String 微服务版本号。字符长度为1~64。 正则表达式为^[0-9]$|^[0-9]+(.[0-9]+)$。 description 否 String 微服务描述信息。字符长度不超过256。 level 否 String 微服务层级:FRONT、MIDDLE、BACK。 registerBy 否 String 微服务注册方式:SDK、PLATFORM、SIDECAR、UNKNOWN。 schemas 否 Array of strings 微服务访问契约内容的外键ID,数组长度最大100个契约。 status 否 String 微服务状态,UP表示上线,DOWN表示下线,默认值UP。 timestamp 否 String 微服务注册时间。 modTimestamp 否 String 最后修改UTC时间。 framework 否 Framework object 开发框架信息。 paths 否 Array of ServicePath objects 服务路由信息。 表5 Framework 参数 是否必选 参数类型 描述 name 否 String 微服务开发框架,默认值为UNKNOWN。 version 否 String 微服务开发框架版本号。 表6 ServicePath 参数 是否必选 参数类型 描述 Path 否 String 路由地址。 Property 否 Object 微服务扩展属性,可以自定义KEY和相应的Value。长度最小1字节。 表7 Rule 参数 是否必选 参数类型 描述 ruleId 否 String 自定义ruleId。 ruleType 否 String rule类型:WHITE或者BLACK。 attribute 否 String 如果是tag_xxx开头,则按Tag过滤attribute属性,否则,则按"serviceId", "AppId", "ServiceName", "Version", "Description", "Level", "Status"过滤。 pattern 否 String 匹配规则,正则表达式,长度1到64。 description 否 String rule描述。 timestamp 否 String 只有获取rule时返回使用,创建rule的时间。 modTimestamp 否 String 更新时间。 表8 MicroServiceInstance 参数 是否必选 参数类型 描述 instanceId 否 String 实例id,唯一标识。创建实例,instanceId由service-center产生。 serviceId 否 String 微服务唯一标识。创建实例时,以url里面的为准,不用这里的serviceId。 version 否 String 微服务版本号。 hostName 是 String 主机信息。 endpoints 是 Array of strings 访问地址信息。 status 否 String 实例状态:UP、DOWN、STARTING、OUTOFSERVICE,默认值UP。 properties 否 Object 微服务扩展属性,可以自定义KEY和相应的Value。长度最小1字节。 healthCheck 否 HealthCheck object 健康检查信息。 dataCenterInfo 否 DataCenterInfo object 数据中心信息。 timestamp 否 String 实例创建时间戳,自动生成。 modTimestamp 否 String 更新时间。 表9 HealthCheck 参数 是否必选 参数类型 描述 mode 是 String 心跳模式: push或者pull。 port 否 Integer 端口。 interval 是 Integer 心跳间隔(秒),当值小于5秒时,按5秒注册。 times 是 Integer 最大尝试请求次数。 表10 DataCenterInfo 参数 是否必选 参数类型 描述 name 是 String 区域名称。 region 是 String 区域。 availableZone 是 String 可用区。
  • 响应示例 状态码: 200 查询成功。 { "service": { "serviceId": "819706e21b7173306797d19922ce4231441c17c5", "appId": "default", "serviceName": "SERVICECENTER", "version": "2.4.8", "level": "BACK", "schemas": [ "servicecenter.grpc.api.ServiceCtrl", "servicecenter.grpc.api.ServiceInstanceCtrl" ], "status": "UP", "timestamp": "1616426688", "modTimestamp": "1616426688", "environment": "development" }}
  • 响应参数 状态码: 200 表3 响应Body参数 参数 参数类型 描述 service MicroService object 微服务信息。 表4 MicroService 参数 参数类型 描述 serviceId String 微服务唯一标识。字符长度为1~64。正则表达式为^.*$。 environment String 用于区分微服务环境,取值为development、testing、acceptance、production。 appId String 应用App唯一标识。字符长度为1~160。 正则表达式为^[a-zA-Z0-9]$|^[a-zA-Z0-9][a-zA-Z0-9_-.][a-zA-Z0-9]$。 serviceName String 微服务名称,同一个App要保证唯一。字符长度为1~128。 正则表达式为^[a-zA-Z0-9]$|^[a-zA-Z0-9][a-zA-Z0-9_-.][a-zA-Z0-9]$。 version String 微服务版本号。字符长度为1~64。 正则表达式为^[0-9]$|^[0-9]+(.[0-9]+)$。 description String 微服务描述信息。字符长度不超过256。 level String 微服务层级:FRONT、MIDDLE、BACK。 registerBy String 微服务注册方式:SDK、PLATFORM、SIDECAR、UNKNOWN。 schemas Array of strings 微服务访问的契约内容。支持数字、字母,支持使用括号内字符做连接符(_-.),长度1-160字节,数组长度最大100个契约。 status String 微服务状态,UP表示上线,DOWN表示下线,默认值UP。 枚举值: UP DOWN timestamp String 微服务注册时间。 modTimestamp String 最后修改UTC时间。 framework Framework object 开发框架信息。 paths Array of ServicePath objects 服务路由信息。 表5 Framework 参数 参数类型 描述 name String 微服务开发框架,默认值为UNKNOWN。 version String 微服务开发框架版本号。 表6 ServicePath 参数 参数类型 描述 Path String 路由地址。 Property Object 微服务扩展属性,可以自定义KEY和相应的Value。长度最小1字节。 状态码: 400 表7 响应Body参数 参数 参数类型 描述 errorCode String 错误代码。 errorMessage String 错误信息。 detail String 详细定位信息。 状态码: 500 表8 响应Body参数 参数 参数类型 描述 errorCode String 错误代码。 errorMessage String 错误信息。 detail String 详细定位信息。
  • 响应示例 状态码: 200 查询成功。 { "instances": [ { "instanceId": "8540bb8b693c4ad1a7fb6a756c415244", "serviceId": "8aed80ea052ac04a64dfc79c24f2170224d074f5", "endpoints": [ "rest:127.0.0.1:8080" ], "hostName": "hostNameTest", "status": "UP", "properties": { "engineID": "30c263e5-2eac-4da1-9c72-5abb9ac94550", "engineName": "cse-fkln1-HA" }, "healthCheck": { "mode": "push", "interval": 30, "times": 3 }, "timestamp": "1650545035", "modTimestamp": "1650545035", "version": "1.0.0" } ]}
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 instances Array of MicroServiceInstance objects 实例列表。 表5 MicroServiceInstance 参数 参数类型 描述 instanceId String 实例id,唯一标识。创建实例,instanceId由service-center产生。 serviceId String 微服务唯一标识,创建实例时,以url里面的为准,不用这里的serviceId。 version String 微服务版本号。 hostName String 主机信息。 endpoints Array of strings 访问地址信息。 status String 实例状态:UP、DOWN、STARTING、OUTOFSERVICE。默认值UP。 properties Object 微服务扩展属性,可以自定义KEY和相应的Value。长度最小1字节。 healthCheck HealthCheck object 健康检查信息。 dataCenterInfo DataCenterInfo object 数据中心信息。 timestamp String 实例创建时间戳,自动生成。 modTimestamp String 更新时间。 表6 HealthCheck 参数 参数类型 描述 mode String 心跳模式push/pull。 port Integer 端口。 interval Integer 心跳间隔(秒),当值小于5秒时,按5秒注册。 times Integer 最大尝试请求次数。 表7 DataCenterInfo 参数 参数类型 描述 name String 区域名字。 region String 区域。 availableZone String 可用区。 状态码: 400 表8 响应Body参数 参数 参数类型 描述 errorCode String 错误代码。 errorMessage String 错误信息。 detail String 详细定位信息。 状态码: 500 表9 响应Body参数 参数 参数类型 描述 errorCode String 错误代码。 errorMessage String 错误信息。 detail String 详细定位信息。
  • 请求参数 表3 请求Header参数 参数 是否必选 参数类型 描述 X-ConsumerId 否 String 微服务消费者的微服务唯一标识。 Authorization 否 String 若微服务引擎专享版开启了安全认证,此参数必填。否则,无此参数。 开启了安全认证的微服务引擎专享版Token,格式为: Authorization:Bearer {Token} Token获取方法,请参考获取微服务引擎专享版用户Token。
  • URI GET /v4/{project_id}/registry/microservices/{service_id}/instances 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 请填固定值:default。 service_id 是 String 微服务唯一标识。字符长度为1~64,正则表达式为^.*$。获取方法请参考查询所有微服务信息。 表2 Query参数 参数 是否必选 参数类型 描述 tags 否 String Tag标签过滤,多个时逗号分隔。 正则表达式为^[a-zA-Z][a-zA-Z0-9_-.]{0,63}$。
  • ServiceComb错误码 当您调用API时,如果遇到“APIGW”开头的错误码,请参见API网关错误码进行处理。 分类 状态码 错误码 错误信息 描述 处理措施 公共错误码 400 400001 Invalid parameter(s) 非法参数 根据错误提示中的规则,修改提示中的参数。 404 404001 ErrRecoudNotExists 该资源不存在 输入正确的查找条件。 409 409001 ErrRecordAlreadyExists 该资源已存在 请勿创建相同的记录。 500 500003 Internal server error 内部错误 内部错误请联系运维支持。 微服务 400 400002 ErrUnhealthy 服务处于不健康状态 请稍后重试或联系技术支持工程师。 400010 Micro-service already exists 服务已存在 修改创建微服务body体中的serviceId或微服务描述信息。 400011 ErrUnavailableBackend 没有可提供的后台实例 请稍后重试或联系技术支持工程师。 400012 Micro-service does not exist 服务不存在 请输入有效的serviceId。 400013 Micro-service has deployed instance(s) 无法删除该微服务,该微服务已部署实例 请先将实例下线,再删除微服务;或强制删除微服务(url中添加query参数“force=true”)。 400014 Undefined schema id schemaId不存在 请输入有效的schemaId。 400015 Not allowed to modify schema schema不允许修改 该schema已注册,不支持修改。 400016 Schema does not exist schema不存在 请先注册schema再查询。 400017 Instance does not exist 实例不存在 请输入有效的instanceId。 400018 ErrTagNotExists 标签不存在 通常出现在查询接口,表明标签不存在,业务根据返回值做恰当后续处理。 400019 ErrRuleAlreadyExists 规则已经存在 重复创建规则,通常可以忽略该错误。 400020 ErrBlackAndWhiteRule 错误的黑白名单 根据错误提示修改参数。 400021 ErrModifyRuleNotAllow 不允许更改规则 必须修改版本号才允许更改微服务信息。 400022 ErrRuleNotExists 规则不存在 通常出现在查询接口,表明规则不存在,业务根据返回值做恰当后续处理。 400023 Cosumer(s) depends on this micro-service 无法删除该微服务,该微服务被其他微服务依赖 可选择强制删除微服务(url中添加query参数“force=true”)。 400024 ErrPermissionDeny 权限不允许 使用合理的帐号进行操作。 400025 ErrEndpointAlreadyExists 端口已存在 建议排查端口是否被其它实例占用。 400026 Micro-service version does not exist 微服务版本不存在 请输入正确的版本号或版本号范围。 400100 Not enough quota 配额不足 对应的资源(如微服务、实例、schema)配额不足,请删除部分资源再创建。 401 401204 No authorization header 认证不通过 若微服务引擎专享版开启了安全认证,此参数必填。否则,无此参数。 开启了安全认证的微服务引擎专享版Token,格式为: Authorization:Bearer {Token} Token获取方法,请参考获取微服务引擎专享版用户Token。 401201 Request unauthorized 认证不通过 输入的Authorization不合法. 403 403001 ErrForbidden 操作受限 使用合理的帐号进行操作。 500 500011 Registry service is unavailable 后端错误 内部错误请联系运维支持。 500101 ErrUnavailableQuota 没有提供配额 请稍后重试或联系技术支持工程师。 500605 NA 配置中心Etcd连接失败 请稍后重试或联系技术支持工程师。 认证 401 401202 User name or password is wrong 帐号名称或密码错误 输入正确的帐号名称和密码。 父主题: 错误码
  • URI DELETE /v4/{project_id}/registry/microservices/{service_id} 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 请填固定值:default。 service_id 是 String 微服务唯一标识。字符长度为1~64。正则表达式为^.*$,获取方法请参考查询所有微服务信息。 表2 Query参数 参数 是否必选 参数类型 描述 force 否 Boolean 是否强制删除。 true表示强制删除,false表示非强制删除。 选择强制删除会自动注销所有服务实例,并且删除相关的服务依赖关系。如果未传此参数,那么在服务拥有实例时,无法被删除。 缺省值:false
  • 响应参数 状态码: 400 表4 响应Body参数 参数 参数类型 描述 errorCode String 错误代码。 errorMessage String 错误信息。 detail String 详细定位信息。 状态码: 500 表5 响应Body参数 参数 参数类型 描述 errorCode String 错误代码。 errorMessage String 错误信息。 detail String 详细定位信息。
  • 响应示例 状态码: 200 查询成功。 { "services": [ { "serviceId": "8aed80ea052ac04a64dfc79c24f2170224d074f5", "appId": "default", "serviceName": "test", "version": "1.0.0", "description": "this is a test", "level": "BACK", "status": "UP", "timestamp": "1650543950", "modTimestamp": "1650543950" }, { "serviceId": "dcc6c1073eab3cadb47cea2e1a874b7883b02a63", "appId": "test", "serviceName": "test1", "version": "1.0.0", "level": "BACK", "status": "UP", "timestamp": "1650544223", "modTimestamp": "1650544223" } ]}
  • 响应参数 状态码: 200 表3 响应Body参数 参数 参数类型 描述 services Array of MicroService objects 微服务列表。 表4 MicroService 参数 参数类型 描述 serviceId String 微服务唯一标识。字符长度为1~64。正则表达式为^.*$。 environment String 用于区分微服务环境,取值为development、testing、acceptance、production。当配置为development、testing或acceptance时,可以通过批量上传schemas接口新增或者修改已存在的Schema;当配置为production时,则不可以新增或者修改Schema。默认值development。 appId String 应用App唯一标识。字符长度为1~160。 正则表达式为^[a-zA-Z0-9]$|^[a-zA-Z0-9][a-zA-Z0-9_-.][a-zA-Z0-9]$。 serviceName String 微服务名称,同一个App要保证唯一。字符长度为1~128。 正则表达式为^[a-zA-Z0-9]$|^[a-zA-Z0-9][a-zA-Z0-9_-.][a-zA-Z0-9]$。 version String 微服务版本号。字符长度为1~64。 正则表达式为^[0-9]$|^[0-9]+(.[0-9]+)$。 description String 微服务描述信息。字符长度不超过256。 level String 微服务层级:FRONT、MIDDLE、BACK。 registerBy String 微服务注册方式:SDK、PLATFORM、SIDECAR、UNKNOWN。 schemas Array of strings 微服务访问的契约内容。支持数字、字母,支持使用括号内字符做连接符(_-.),长度1-160字节,数组长度最大100个契约。 status String 微服务状态,UP表示上线,DOWN表示下线,默认值UP。 timestamp String 微服务注册时间。 modTimestamp String 最后修改UTC时间。 framework Framework object 开发框架信息。 paths Array of ServicePath objects 服务路由信息。 表5 Framework 参数 参数类型 描述 name String 微服务开发框架,默认值为UNKNOWN。 version String 微服务开发框架版本号。 表6 ServicePath 参数 参数类型 描述 Path String 路由地址。 Property Object 微服务扩展属性,可以自定义KEY和相应的Value。长度最小1字节。 状态码: 400 表7 响应Body参数 参数 参数类型 描述 errorCode String 错误代码。 errorMessage String 错误信息。 detail String 详细定位信息。 状态码: 500 表8 响应Body参数 参数 参数类型 描述 errorCode String 错误代码。 errorMessage String 错误信息。 detail String 详细定位信息。
共100000条