边缘端OpenAPI支持使用第三方工具Postman进行调试并自动生成调用代码,可节约您编写调用代码的时间。
步骤一:下载安装Postman
Postman是一个API开发协作平台,涵盖API的整个生命周期,即从API设计、开发、调试、测试到生成调用代码。
下载并安装Postman。操作详情,请参见Postman官方文档。
说明 本文内容和图片,以Windows 64位系统中下载7.25.0版本Postman为例。
步骤二:设置SSL
Postman默认开启对服务端安全传输协议SSL(Secure Sockets Layer)证书的验证,为保证API正常调用,您可以根据实际情况,选择如下两个方法中的一个,进行SSL设置:
- 关闭SSL验证
- 打开Postman程序。
- 在Postman主页面,单击右上角图标,选择Settings。
- 在SETTINGS对话框单击General页签,将SSL certificate verification开关置为OFF。
- 配置CA证书
您可以在Link IoT Edge所在机器上的/linkedge/gateway/build/bin/console/certs/ca.x509.pem目录下找到OpenAPI的服务端CA证书,并将该证书下载到本地。关于配置CA证书相关操作,请参见步骤一:设置证书。
- 打开Postman程序。
- 在Postman主页面,单击右上角图标,选择Settings。
- 在SETTINGS对话框单击Certificates页签,将CA Certificates开关置为ON。
- 单击Select File,将已下载到本地的ca.x509.pem文件上传到Postman。
步骤三:调试API
Postman支持从cURL命令导入API请求。
- 在Postman主页面,单击左上角Import。
- 在弹出的IMPORT对话框中单击Raw Text页签,输入CreateAuthCookie接口的cURL命令。
- 单击Continue,系统跳转到Confirm your import页面,Postman会解析cURL命令并自动填充请求字段,单击Import。
- 在Postman主页面,单击Send发送请求,可查看到返回了201 Created的状态码。响应消息头(Headers)中的Set-Cookie字段的值,即为认证Cookie,复制该值保存到本地以备后续使用。
- 获取认证Cookie后,重复步骤1~步骤4,可以调用其它API。下图中以调用ListThings接口为例。在Postman主页面,单击左上角Import输入ListThings接口的请求cURL命令后,单击 。可以看到Postman自动将CreateAuthCookie接口响应消息头Set-Cookie字段的内容填入ListThings请求消息头的Cookie字段。然后单击Send。
步骤四:生成代码
Postman支持自动生成调用代码。
- 在Postman主页面已调用成功的API页签右侧单击Code。
- 根据您使用的语言和实际需求,选择语言生成实际的调用代码。
以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();
- Node.js
文档内容是否对您有帮助?