简介: 本文介绍如何调用物联网平台的云端API,很多时候控制台上操作不太方便,需要通过API调用来完成或者通过调用API封装接口,以做到二次开发等。如产品管理,设备管理,规则创建等。分别介绍通过common SDK和iot SDK的使用。


1、 云端API介绍以及调试方法

https://help.aliyun.com/document_detail/69893.html?spm=a2c4g.11186623.6.749.1def3112gGOTHP
cfc84e6ecff047f8bb123633c5c91d98?from=pc.jpg
使用云端API之前务必先使用OpenAPI Explorer在线调试工具先调试通过。
https://api.aliyun.com/?spm=
a2c4g.11186623.2.12.240a3d29r9yc1o#/?product=Iot&version=2018-01-20&api=CreateProduct&tab=DEMO&lang=JAVA
其实我们的代码也就是从旁边的示例代码中搬运过来的。

2、使用common SDK调用云端API
e247376d16a84d7b8616b40e5e8493ba?from=pc.jpg
前边已经说过,使用OpenAPI Explorer在线调试工具调试好之后,然后将示例代码放到自己的工程中
以创建产品为例:

7038889118334471aac01f0e30728a9e?from=pc.jpg
调试通过,然后就可以放心把代码搬出来了

245e942d6ee143169900f59dcda108d2?from=pc.jpg

可以看到控制台上已经有新产品了。

729676f926294709bc83c57c1829554f?from=pc.jpg
编写代码

8e4e7697b7054593a35ba7122980543b?from=pc.jpg
170497f2c9de42ef99a112440fd445cb?from=pc.jpg
测试结果:

d894cf36f0284b128cc435eb7e659580?from=pc.jpg

控制台上也新建了产品

a4ca8c1fd68d403bb2567dedd621f716?from=pc.jpg

源码:
pom.xml
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project xmlns="http://maven.apache.org/POM/4.0.0"
  3.          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4.          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  5.     <modelVersion>4.0.0</modelVersion>
  6.     <groupId>org.example</groupId>
  7.     <artifactId>CallAPI</artifactId>
  8.     <version>1.0-SNAPSHOT</version>
  9.     <dependencies>
  10.         <dependency>
  11.             <groupId>com.aliyun</groupId>
  12.             <artifactId>aliyun-java-sdk-core</artifactId>
  13.             <version>4.5.3</version>
  14.         </dependency>
  15.     </dependencies>
  16. </project>
CallAPI.Java
  1. package com.alibaba;
  2. import com.aliyuncs.CommonRequest;
  3. import com.aliyuncs.CommonResponse;
  4. import com.aliyuncs.DefaultAcsClient;
  5. import com.aliyuncs.IAcsClient;
  6. import com.aliyuncs.exceptions.ClientException;
  7. import com.aliyuncs.exceptions.ServerException;
  8. import com.aliyuncs.http.MethodType;
  9. import com.aliyuncs.profile.DefaultProfile;
  10. /*
  11. pom.xml
  12. <dependency>
  13.   <groupId>com.aliyun</groupId>
  14.   <artifactId>aliyun-java-sdk-core</artifactId>
  15.   <version>4.5.3</version>
  16. </dependency>
  17. */
  18. public class CallAPI {
  19.     public static void main(String[] args) {
  20.         DefaultProfile profile = DefaultProfile.getProfile("cn-shanghai", "LTAI4*******vJdtXvT3G", "Mp2f4q*****9ud7rOPGl");
  21.         IAcsClient client = new DefaultAcsClient(profile);
  22.         CommonRequest request = new CommonRequest();
  23.         request.setSysMethod(MethodType.POST);
  24.         request.setSysDomain("iot.cn-shanghai.aliyuncs.com");
  25.         request.setSysVersion("2018-01-20");
  26.         request.setSysAction("CreateProduct");
  27.         request.putQueryParameter("RegionId", "cn-shanghai");
  28.         request.putQueryParameter("NodeType", "0");
  29.         request.putQueryParameter("ProductName", "ProductAPITestDemo6");
  30.         request.putQueryParameter("DataFormat", "1");
  31.         request.putQueryParameter("Description", "测试云端API用");
  32.         request.putQueryParameter("AliyunCommodityCode", "iothub_senior");
  33.         request.putQueryParameter("AuthType", "secret");
  34.         try {
  35.             CommonResponse response = client.getCommonResponse(request);
  36.             System.out.println(response.getData());
  37.         } catch (ServerException e) {
  38.             e.printStackTrace();
  39.         } catch (ClientException e) {
  40.             e.printStackTrace();
  41.         }
  42.     }
  43. }
3、使用iot SDK调用云端API

e66356e8d6a546968e433793ab8f2d98?from=pc.jpg
到官网下载Demo

d9b535e2583748318e46916e8355d1d9?from=pc.jpg

点击链接后,进入Github(没有账户就注册一个)

e235e24328ca4a409d4c7978f9e4132e?from=pc.jpg
导入到工程中

3bf6f612b2a24b9a92b8873936bd762c?from=pc.jpg

同样以创建产品为例,和common SDK一样要找到我们需要修改的参数AK SK等
387447ccf9db493681191cb6be485d89?from=pc.jpg

发现调用到了ProductManager

4235a40f16014fb5918d74b91175e0e0?from=pc.jpg
6a661384b6ed4d14a7fd49d18659a641?from=pc.jpg

继续追踪

3fdeb1c5cdd7416a99fa008fb2a24b47?from=pc.jpg
b9bd9022e0e74d228f59e7271369cb32?from=pc.jpg
823c8192a3784220bfd9681192449da7?from=pc.jpg
测试结果:

b17ac26a1e9c4aefb8bf9d75ef4fd83b?from=pc.jpg
控制台上创建新产品成功

3f988198ec2941f9a5c40d5f5d5a2129?from=pc.jpg
源码直接去官网下载。
原文:
https://developer.aliyun.com/article/779727?spm=5176.8068049.0.0.55746d19QQJ9oF&groupCode=iot