更新时间:2022-06-20 GMT+08:00

示例

本节以查询服务列表为例,详细描述接口调用的流程。该示例中的实例是在已部署的SpringCloudDemo服务上,实现调用查询服务列表接口的过程。Spring Cloud是一个基于Spring Boot实现的微服务架构开发工具。它为微服务架构中涉及的配置管理、服务治理、断路器、智能路由、微代理、控制总线、全局锁、决策竞选、分布式会话和集群状态管理等操作提供了简单的方式。

实现查询服务列表接口调用流程如下:

  1. 首先,获取Token认证,因为在后续的请求中需要将token放到请求消息头中作为认证;
  2. 其次,构造调用查询服务列表接口的请求消息,构造完成并发起请求;
  3. 最后,查看获取到响应消息,分析调用查询服务列表接口是否成功。

前提准备:

  1. 服务器已部署的SpringCloudDemo应用;
  2. 已获取IAM和APM的Endpoint;此例中IAM的Endpoint以iam_Endpoint代替,APM的Endpoint以apm_Endpoint代替。
  1. 获取Token认证

    1. 发送“POST https://IAM的Endpoint/v3/auth/tokens”,此处IAM的Endpoint以iam_Endpoint代替,POST https://iam_Endpoint/v3/auth/tokens。
    2. 请求响应成功后在响应消息头中包含的“X-Subject-Token”的值即为Token值。
      请求内容示例如下:
      {
        "auth": {
          "identity": {
            "methods": [
              "password"
            ],
            "password": {
              "user": {
                "name": "username",//username为用户名,请根据实际情况替换。
                "password": "password",//password为用户密码,请根据实际情况替换。
                "domain": {
                  "name": "domainname"//domainname为域名,请根据实际情况替换。
                }
              }
            }
          },
          "scope": {
            "project": {
              "name": "ap-southeast-1" //ap-southeast-1为IAM区域,请根据实际情况替换。
      
            }
          }
        }
      }

  2. 构造请求消息并发送

    每一个请求通常由三部分组成,分别是:请求行、请求消息头、请求正文(可选)。请求消息构造完成之后,发送该消息等待响应。

    1. 请求行

      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

    2. 请求消息头

      X-Auth-Token,此值即为在用户Token认证中得到的“X-Subject-Token”的值,

      X-Auth-Token:MIIRpQYJKoZIhvcNAQcCoIIRljCCEZICAQExDTALBglghkgBZQMEAgEwgg-zBgkqhkiG9w0BBwGggg......

      Content-Type:application/json;charset=utf8

    3. 请求正文(此例不选)

  3. 响应消息

    请求消息发送成功,得到响应消息。

    响应结果:

    {
      "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应用中的所有服务。