华为云用户手册

  • 响应参数 状态码: 400 表3 响应Body参数 参数 参数类型 描述 errorCode String 错误代码。 errorMessage String 错误信息。 detail String 详细定位信息。 状态码: 500 表4 响应Body参数 参数 参数类型 描述 errorCode String 错误代码。 errorMessage String 错误信息。 detail String 详细定位信息。
  • 响应示例 状态码: 200 查询成功。 { "instance": { "instanceId": "4994929d6b8044b29462d4f7daa33c4f", "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": "1650545270", "modTimestamp": "1650545270", "version": "1.0.0" }}
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 instance MicroServiceInstance object 微服务实例信息。 表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 详细定位信息。
  • URI GET /v4/{project_id}/registry/microservices/{service_id}/instances/{instance_id} 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 请填固定值:default。 service_id 是 String 微服务唯一标识。字符长度为1~64,正则表达式为^.*$。获取方法请参考查询所有微服务信息。 instance_id 是 String 微服务实例唯一标识。字符长度不超过64位, 正则表达式为^[A-Za-z0-9_.-]*$。获取方法请参考根据service_id查询微服务实例。 表2 Query参数 参数 是否必选 参数类型 描述 tags 否 String Tag标签过滤,多个时逗号分隔。正则表达式为^[a-zA-Z][a-zA-Z0-9_-.]{0,63}$。
  • 请求参数 表3 请求Header参数 参数 是否必选 参数类型 描述 X-consumerId 否 String 微服务消费者的微服务唯一标识。 Authorization 否 String 若微服务引擎专享版开启了安全认证,此参数必填。否则,无此参数。 开启了安全认证的微服务引擎专享版Token,格式为: Authorization:Bearer {Token} Token获取方法,请参考获取微服务引擎专享版用户Token。
  • 响应参数 状态码: 200 表7 响应Body参数 参数 参数类型 描述 instanceId String 实例ID。 状态码: 400 表8 响应Body参数 参数 参数类型 描述 errorCode String 错误代码。 errorMessage String 错误信息。 detail String 详细定位信息。 状态码: 500 表9 响应Body参数 参数 参数类型 描述 errorCode String 错误代码。 errorMessage String 错误信息。 detail String 详细定位信息。
  • 请求示例 注册一个微服务实例,其主机信息为localhost,健康检查的心跳模式为push,心跳间隔为30s,所在region为r1,名字为dc,可用区为az1。 POST https://{endpoint}/v4/{project_id}/registry/microservices/{service_id}/instances{ "instance" : { "endpoints" : [ "grpc://127.0.1.312:9980", "rest://127.0.0.111:8081" ], "hostName" : "localhost", "status" : "UP", "properties" : { "_TAGS" : "A, B", "attr1" : "a", "nodeIP" : "127.0.0.1" }, "dataCenterInfo" : { "name" : "dc", "region" : "r1", "availableZone" : "az1" }, "healthCheck" : { "mode" : "push", "interval" : 30, "times" : 3 } }}
  • 请求参数 表2 请求Header参数 参数 是必选 参数类型 描述 Authorization 否 String 若微服务引擎专享版开启了安全认证,此参数必填。否则,无此参数。 开启了安全认证的微服务引擎专享版Token,格式为: Authorization:Bearer {Token} Token获取方法,请参考获取微服务引擎专享版用户Token。 表3 请求Body参数 参数 是否必选 参数类型 描述 instance 是 MicroServiceInstance object 微服务实例信息。 表4 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 更新时间。 表5 HealthCheck 参数 是否必选 参数类型 描述 mode 是 String 心跳模式push/pull。 port 否 Integer 端口。 interval 是 Integer 心跳间隔(秒),当值小于5秒时,按5秒注册。 times 是 Integer 最大尝试请求次数。 表6 DataCenterInfo 参数 是否必选 参数类型 描述 name 是 String 区域名字。 region 是 String 区域。 availableZone 是 String 可用区。
  • 响应示例 状态码: 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 GET /v4/{project_id}/registry/microservices/{service_id}/schemas 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 请填固定值:default。 service_id 是 String 微服务唯一标识。字符长度为1~64,正则表达式为^.*$。获取方法请参考查询所有微服务信息。 表2 Query参数 参数 是否必选 参数类型 描述 withSchema 否 Integer 是否查询schema内容,默认为0。 0表示不显示schema内容,只有schema_id和summary。 1表示显示schema_id、summary和schema。
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 schemas Array of Schema objects 契约列表。 表5 Schema 参数 参数类型 描述 schemaId String 契约id。 schema String 契约内容。 summary String 契约的Summary。 状态码: 400 表6 响应Body参数 参数 参数类型 描述 errorCode String 错误代码。 errorMessage String 错误信息。 detail String 详细定位信息。 状态码: 500 表7 响应Body参数 参数 参数类型 描述 errorCode String 错误代码。 errorMessage String 错误信息。 detail String 详细定位信息。
  • 响应参数 状态码: 400 表3 响应Body参数 参数 参数类型 描述 errorCode String 错误代码。 errorMessage String 错误信息。 detail String 详细定位信息。 状态码: 500 表4 响应Body参数 参数 参数类型 描述 errorCode String 错误代码。 errorMessage String 错误信息。 detail String 详细定位信息。
  • 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查询微服务实例。
  • 操作步骤 注册微服务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实例的地址,发起业务调用。 您还可以进入微服务引擎控制台的“微服务目录”,查看服务注册信息。
  • 请求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在同一个区域也相同,所以简洁起见将这两部分省略。
  • 请求消息头 附加请求头字段,如指定的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
  • 请求方法 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。
  • 状态码 状态码如表1所示。 表1 状态码 状态码 编码 错误码说明 200 - 操作成功。 204 NoContent 操作成功。 400 BadRequest 非法请求。 建议直接修改该请求为合法请求,不要再重试该请求。 401 Unauthorized 在客户端提供认证信息后,返回该状态码,表明服务端指出客户端所提供的认证信息不正确或非法。 404 NotFound 所请求的资源不存在。 建议直接修改该请求,不要重试该请求。 409 Conflict 该资源已存在。 422 UnprocessableEntity 请求格式正确,但是由于含有语义错误,无法响应。 500 InternalServerError 表明服务端能被请求访问到,但是不能理解用户的请求。 父主题: 附录
  • 调用说明 CS E提供了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" }}
共100000条