边缘端Open API支持使用第三方工具Postman进行调试并自动生成调用代码,可节约您编写调用代码的时间。

一、下载安装Postman

Postman是一个API开发协作平台,涵盖API的整个生命周期,即从API设计、开发、调试、测试到生成调用代码。

下载并安装Postman,操作详情请参见Postman官方文档

说明 本文内容和图片,以Windows 64位系统中下载7.25.0版本Postman为例。

二、设置SSL

Postman默认开启对服务端安全传输协议SSL(Secure Sockets Layer)证书的验证,为保证API正常调用,您可以根据实际情况,选择如下两个方法中的一个,进行SSL设置:

  • 关闭SSL验证
    1. 打开Postman程序。
    2. 在Postman主页面,单击右上角setting图标图标,选择Settings
    3. SETTINGS对话框单击General页签,将SSL certificate verification开关置为OFFSSL certificate verification
  • 配置CA证书

    您可以在Link IoT Edge所在机器上的/linkedge/gateway/build/bin/console/certs/ca.x509.pem目录下找到Open API的服务端CA证书,并将该证书下载到本地。关于配置CA证书相关操作请参见设置证书

    1. 打开Postman程序。
    2. 在Postman主页面,单击右上角setting图标图标,选择Settings
    3. SETTINGS对话框单击Certificates页签,将CA Certificates开关置为ON
    4. 单击Select File,将已下载到本地的ca.x509.pem文件上传到Postman。CA Certificates

三、调试API

Postman支持从cURL命令导入API请求。

  1. 在Postman主页面,单击左上角Import
  2. 在弹出的IMPORT对话框中单击Raw Text页签,输入CreateAuthCookie接口的cURL命令。
    调用CreateAuthCookie接口
  3. 单击Continue,系统跳转到Confirm your import页面,Postman会解析cURL命令并自动填充请求字段,单击Import
  4. 在Postman主页面,单击Send发送请求,可查看到返回了201 Created的状态码。
    响应消息头(Headers)中的Set-Cookie字段的值,即为认证Cookie,复制该值保存到本地以备后续使用。获取认证Cookie
  5. 获取认证Cookie后,重复步骤1~步骤4,可以调用其它API。
    下图中以调用ListThings接口为例。在Postman主页面,单击左上角Import输入ListThings接口的请求cURL命令后,单击Continue > Import。可以看到Postman自动将CreateAuthCookie接口响应消息头Set-Cookie字段的内容填入ListThings请求消息头的Cookie字段。然后单击SendListThings

四、生成代码

Postman支持自动生成调用代码。

  1. 在Postman主页面已调用成功的API页签右侧单击Code
  2. 根据您使用的语言和实际需求,选择语言生成实际的调用代码。
    生成调用代码

    以ListThings接口为例,通过Postman生成的调用代码示例如下:

    • Node.js
      var https = require('https');
      
      var options = {
        'method': 'GET',
        'hostname': '127.0.0.1',
        'port': 9999,
        'path': '/2020-04-30/things',
        'headers': {
          'Cookie': 'token=2c2cbbc36af52216a6dd0bdba38f575e2b94b029d1bf45bb7a377f**********'
        },
      };
      
      var req = https.request(options, function (res) {
        var chunks = [];
        res.on("data", function (chunk) {
          chunks.push(chunk);
        });
        res.on("end", function (chunk) {
          var body = Buffer.concat(chunks);
          console.log(body.toString());
        });
        res.on("error", function (error) {
          console.error(error);
        });
      });
      req.end();
    • Python
      import requests
      
      url = "https://127.0.0.1:9999/2020-04-30/things"
      payload = {}
      headers = {
        'Cookie': 'token=2c2cbbc36af52216a6dd0bdba38f575e2b94b029d1bf45bb7a377f**********'
      }
      response = requests.request("GET", url, headers=headers, data = payload)
      print(response.text.encode('utf8'))
    • Java
      OkHttpClient client = new OkHttpClient().newBuilder()
        .build();
      Request request = new Request.Builder()
        .url("https://127.0.0.1:9999/2020-04-30/things")
        .method("GET", null)
        .addHeader("Cookie", "token=2c2cbbc36af52216a6dd0bdba38f575e2b94b029d1bf45bb7a377f**********")
        .build();
      Response response = client.newCall(request).execute();