示例
本节以查询服务列表为例,详细描述接口调用的流程。该示例中的实例是在已部署的SpringCloudDemo服务上,实现调用查询服务列表接口的过程。Spring Cloud是一个基于Spring Boot实现的微服务架构开发工具。它为微服务架构中涉及的配置管理、服务治理、断路器、智能路由、微代理、控制总线、全局锁、决策竞选、分布式会话和集群状态管理等操作提供了简单的方式。
实现查询服务列表接口调用流程如下:
- 首先,获取Token认证,因为在后续的请求中需要将token放到请求消息头中作为认证;
- 其次,构造调用查询服务列表接口的请求消息,构造完成并发起请求;
- 最后,查看获取到响应消息,分析调用查询服务列表接口是否成功。
前提准备:
- 服务器已部署的SpringCloudDemo应用;
- 已获取IAM和APM的Endpoint;此例中IAM的Endpoint以iam_Endpoint代替,APM的Endpoint以apm_Endpoint代替。
- 获取Token认证
- 发送“POST https://IAM的Endpoint/v3/auth/tokens”,此处IAM的Endpoint以iam_Endpoint代替,POST https://iam_Endpoint/v3/auth/tokens。
- 请求响应成功后在响应消息头中包含的“X-Subject-Token”的值即为Token值。
请求内容示例如下:
{ "auth": { "identity": { "methods": [ "password" ], "password": { "user": { "name": "username",//username为用户名,请根据实际情况替换。 "password": "password",//password为用户密码,请根据实际情况替换。 "domain": { "name": "domainname"//domainname为域名,请根据实际情况替换。 } } } }, "scope": { "project": { "name": "cn-north-1" //cn-north-1为IAM区域,请根据实际情况替换。 } } } }
- 构造请求消息并发送
每一个请求通常由三部分组成,分别是:请求行、请求消息头、请求正文(可选)。请求消息构造完成之后,发送该消息等待响应。
- 请求行
GET https://Endpoint/v1/{project_id}/ats/applications
Endpoint 为APM的Endpoint,此处以apm_Endpoint代替。
{project_id}为路径参数
参数
参数类型
描述
project_id
string
工程ID
用户Token认证过程中,请求响应成功后在响应消息体中包含{project_id}值,"id":"12ff18574dfe4b92......"。
请求行内容为:
https://apm_Endpoint/v1/12ff18574dfe4b92....../ats/applications?monitorGroup=SpringCloudDemo
- 请求消息头
X-Auth-Token,此值即为在用户Token认证中得到的“X-Subject-Token”的值,
X-Auth-Token:MIIRpQYJKoZIhvcNAQcCoIIRljCCEZICAQExDTALBglghkgBZQMEAgEwgg-zBgkqhkiG9w0BBwGggg......
Content-Type:application/json;charset=utf8
- 请求正文(此例不选)
- 请求行
- 响应消息
请求消息发送成功,得到响应消息。
响应结果:
{ "errorCode": "SVCSTG.ATS.2000", "errorMessage": null, "responseInfo": [ "spring-cloud-service-eureka-server", "spring-cloud-testservice-consumer", "spring-cloud-testservice-provider", "springboot1.2", "springboot1.3.8", "springboot1.4.7", "springboot1.5.13" ] }
响应结果由errorCode(响应错误码)、errorMessage(响应错误信息描述)、responseInfo(响应详情)这三个参数组成。
responseInfo参数中的内容为查询到SpringCloudDemo应用中的所有服务。