邊緣端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
文檔內容是否對您有幫助?