Java SDK调用示例

本文介绍如何使用OpenAPI调用API网关接口查询API 网关实例列表。

步骤一:查看OpenAPI文档

在调用OpenAPI前,建议您先阅读对应的接口文档DescribeInstances,了解、学习调用该接口所需要的参数及权限等,更多信息请参见API概览

步骤二:创建RAM用户并完成授权

重要

阿里云账号拥有所有API的访问权限,建议您创建并使用RAM用户进行API访问或日常运维。

您可以使用阿里云账号(主账号)、RAM用户、RAM角色调用该接口,有关各种身份的差异请参见身份

本案例中,我们使用RAM用户进行接口调用。

  1. 创建RAM用户

    1. 登录RAM访问控制

    2. 在左侧导航栏,选择身份管理 > 用户

    3. 用户页面,单击创建用户

    4. 创建用户页面,设置登录名称显示名称访问方式控制台访问

    5. 单击确定

      创建RAM用户成功后,请记录用户登录名称和密码,您在调用OpenAPI时,需要使用该RAM用户登录阿里云OpenAPI开发者门户。

  2. 为RAM用户授权

    说明
    • AliyunApiGatewayFullAccess管理网关服务的权限。

    • AliyunApiGatewayReadOnlyAccess:只读访问网关服务的权限。

    如果您需要新建自定义权限,请参见授权信息

    1. 访问RAM用户列表

    2. 单击目标RAM用户操作列的添加权限

    3. 在文本框中输入关键字ApiGateway进行搜索,选择AliyunApiGatewayFullAccess策略。

    4. 单击确认新增授权,完成授权操作。

  3. 进入到对应的RAM用户详情页,在认证管理页签,点击创建 AccessKey

    更多操作详情,请参见创建AccessKey

步骤三:调用OpenAPI

本文以Java语言SDK调用OpenAPI,其他语言SDK的用法类似,更多信息请参见API 网关SDK。您也可根据业务的实际需要选择其他调用方式,更多调用方法请参见OpenAPI 调用方式

说明

调用接口前需配置环境变量,通过环境变量读取访问凭证。AccessKey IDAccessKey Secret的环境变量名分别为:ALIBABA_CLOUD_ACCESS_KEY_IDALIBABA_CLOUD_ACCESS_KEY_SECRET。配置详情请参见在Linux、macOS和Windows系统配置环境变量

下载示例代码

  1. 访问DescribeInstances

  2. 在左侧的参数配置页签,填写需要的参数信息。

    • InstanceId 参数输入示例值:apigateway-hz-67bb67*****。

    • Language 参数输入示例值:zh。

    • EnableTagAuthorization 参数输入示例值:true。

    说明

    DescribeInstances 接口的请求参数为非必选项,也可以不填写。

  3. 在右侧的SDK示例页签,SDK版本选择v2.0,语言选择Java,单击下载完整工程按钮,下载示例代码包。

  4. 本地解压下载的xxx-Java.zip文件。

打开项目

使用IntelliJ IDEA加载项目,待相关依赖加载完毕后,打开src/main/java/com/aliyun/sample/Sample.java根据代码中的注释提示自行添加打印返回值的代码。

运行项目

点击IDE右上角的运行按钮,可查看输出日志。本案例中的返回内容如下:

{
  "headers": {
    "access-control-allow-origin": "*",
    "date": "Tue, 18 Jun 2024 06:42:57 GMT",
    "keep-alive": "timeout=25",
    "transfer-encoding": "chunked",
    "vary": "Accept-Encoding",
    "x-acs-request-id": "31C7C09E-176B-5504-9E94-0A177E0*****",
    "connection": "keep-alive",
    "content-type": "application/json;charset=utf-8",
    "access-control-expose-headers": "*",
    "x-acs-trace-id": "93035b17ce474e96927d5253706*****"
  },
  "statusCode": 200,
  "body": {
    "instances": {
      "instanceAttribute": [
        {
          "aclStatus": "off",
          "connectCidrBlocks": "[\"10.192.0.0/16\",\"10.127.0.0/24\"]",
          "connectVpcId": "vpc-bp1s5c5wq33lkzq******",
          "createdTime": "2024-01-20T03:22:19Z",
          "dedicatedInstanceType": "vpc_connect",
          "egressIpv6Enable": false,
          "httpsPolicies": "HTTPS2_TLS1_0",
          "IPV6AclStatus": "off",
          "instanceChargeType": "PayAsYouGo",
          "instanceCidrBlock": "192.168.0.0/16",
          "instanceId": "apigateway-hz-67bb6******",
          "instanceName": "api-gateway",
          "instanceRpsLimit": 2500,
          "instanceSpec": "api.s1.small",
          "instanceSpecAttributes": {
            "specAttribute": [
              {
                "localName": "最大每秒请求数",
                "value": "2500"
              },
              {
                "localName": "SLA",
                "value": "99.95%"
              },
              {
                "localName": "最大连接数",
                "value": "50000"
              },
              {
                "localName": "最大出访连接池大小",
                "value": "1200"
              },
              {
                "localName": "最大公网入访带宽",
                "value": "5120M"
              },
              {
                "localName": "最大公网出访带宽",
                "value": "100M"
              }
            ]
          },
          "instanceType": "VPC_DEDICATED",
          "internetEgressAddress": "116.62.***.***",
          "maintainEndTime": "22:00Z",
          "maintainStartTime": "18:00Z",
          "networkInterfaceAttributes": {
            "networkInterfaceAttribute": [
              {
                "cidrBlock": "10.192.0.0/16",
                "securityGroupId": "sg-bp1h7qye5zu8ujk*****",
                "vswitchId": "vsw-bp1umyj8athfrwih*****",
                "zoneId": "cn-hangzhou-g"
              },
              {
                "cidrBlock": "10.127.0.0/24",
                "securityGroupId": "sg-bp1h7qye5zu8ujk*****",
                "vswitchId": "vsw-bp14sk9xqjwrteer*****",
                "zoneId": "cn-hangzhou-h"
              }
            ]
          },
          "privateDnsList": {
            "privateDns": [
              
            ]
          },
          "status": "RUNNING",
          "supportIpv6": true,
          "vpcEgressAddress": "10.192.142.96,10.127.0.134",
          "vpcIntranetEnable": false,
          "vpcSlbIntranetEnable": false,
          "zoneId": "cn-hangzhou-MAZ2",
          "zoneLocalName": "多可用区 2"
        }
      ]
    },
    "pageNumber": 1,
    "pageSize": 10,
    "requestId": "31C7C09E-176B-5504-9E94-0A177E0*****",
    "totalCount": 1
  }
}