工业数据应用平台接口文档

规范

请求协议

HTTPS/HTTP

请求方法

POST

请求超时时间

5000(毫秒)

数据签名

需要

账号数据开放接口

1.查询角色列表接口

使用接口查询出角色信息, 支持分页, 条件查询

路径

/industry/asset/openapi/role/list

版本

1.0.0

请求参数

名称

类型

是否必填

示例值

描述

请求示例

响应参数

名称

类型

示例值

描述

id

String

fc101fec

响应id

code

Int

200

响应码 200:成功

message

String

错误消息

localizedMsg

String

本地语言错误消息

data

JSON

角色集合

  • roleName

String

管理员

角色名

  • roleDesc

String

这是管理员

角色描述

  • roleCode

String

v7bc0d9245

角色编号

响应示例

{
    "id":"4de2c367-c1db-417c-aa15-8c585******",
    "code":200,
    "data":[
        {
            "roleCode":"40bc37bc0d9245bfa73db3dd36******",
            "roleName":"系统管理员",
            "roleDesc":"this系统管理员"
        },
        {
            "roleCode":"40bc37bc0d9245bfa73db3dd36******",
            "roleName":"操作员",
            "roleDesc":"this操作员"
        }
    ]
}

2.新增用户接口

新增加用户账号, 其中loginName(登录账号) 是唯一的且不允许变更

路径

/industry/asset/openapi/user/add

版本

1.0.0

请求参数

名称

类型

是否必填

示例值

描述

loginName

String

algx

登录账号, 唯一且不可变更

nickName

String

张三

姓名

roleCodes

JSON

cb20d2ca47

所属角色编号集合

phone

String

188********

手机

email

String

a**@***.com

邮箱

请求示例

{
    "nickName":"张",
    "roleCodes":[
        "cb20d2ca477d453ab7ff752f21******",
        "40bc37bc0d9245bfa73db3dd36******"
    ],
    "phone":"13800******",
    "email":"username@example.com",
    "loginName":"zhangsan******"
}

响应参数

名称

类型

示例值

描述

id

String

响应id

code

Int

200

响应码 200:成功

message

String

错误消息

localizedMsg

String

本地语言错误消息

data

JSON

  • auid

String

10

用户ID

响应示例

{
    "code":200,
    "data":{
        "auid":"284966467a914362b5***************"
    },
    "id":"13800******"
}

3.查询用户列表接口

使用接口查询出用户信息, 支持分页, 条件查询

路径

/industry/asset/openapi/user/list

版本

1.0.0

请求参数

名称

类型

是否必填

示例值

描述

pageNo

Int

10

页号

pageSize

Int

50

每页数量

keyWord

String

管理员

关键词搜索(按姓名/手机/登录账号)

请求示例

{
  "pageNo":1,
  "pageSize":20,
  "keyWord":"管理员"
}

响应参数

名称

类型

示例值

描述

id

String

响应id

code

int

200

响应码 200:成功

message

String

错误消息

localizedMsg

String

本地语言错误消息

data

JSON

  • total

Int

10

总数量

  • list

JSON

用户集合

  • - auid

String

503eal0ef1db4*****

用户ID

  • - loginName

String

Alice

登录账号

  • - nickName

String

张先生

姓名

  • - phone

String

13800*******

手机号

  • - email

String

username@example.com

邮箱

  • - roleList

JSON

角色集合

  • - - roleCode

String

efcbd2d****

角色编号

  • - - roleName

String

管理员

角色名

  • - orgList

JSON

组织集合

  • - - organizationId

String

efcbd2d****

组织ID

  • - - organizationName

String

昆山基地

组织名

响应示例

{
    "code":200,
    "data":{
        "total":2,
        "list":[
            {
                "auid":"284966467a914362b5*********",
                "nickName":"张先生",
                "phone":"13800*******",
                "loginName":"Alex",
                "email":"username@example.com",
                "roleList":[
                    {
                        "roleCode":"ADMINISTRATOR",
                        "roleName":"系统管理员"
                    }
                ],
                "organizationList":[
                    {
                        "organizationId":"566f4ac574da46e291ca405*******",
                        "organizationName":"业务人员1",
                        "order":1
                    }
                ]
            },
            {
                "auid":"284966467a914362b53313db*******",
                "nickName":"张先生",
                "phone":"13800******",
                "loginName":"Alex",
                "email":"username@example.com",
                "roleList":[
                    {
                        "roleCode":"ADMINISTRATOR",
                        "roleName":"系统管理员"
                    }
                ],
                "organizationList":[
                    {
                        "organizationId":"566f4ac574da46e291ca405********",
                        "organizationName":"业务人员1",
                        "order":1
                    }
                ]
            }
        ]
    },
    "id":"16238484*****"
}

4.修改用户接口

根据登录账号修改用户信息.

路径

/industry/asset/openapi/user/update

版本

1.0.0

请求参数

名称

类型

是否必填

示例值

描述

loginName

String

alex

登录账号, 唯一且不可变更

nickName

String

张先生

姓名

roleCodes

JSON

所属角色集合

phone

String

13800******

手机

email

String

username@example.com

邮箱

请求示例

{
    "nickName":"张先生",
    "roleCodes":[
        "cb20d2ca477d453ab7ff752f21******",
        "40bc37bc0d9245bfa73db3dd3******"
    ],
    "phone":"13800******",
    "email":"username@example.com",
    "loginName":"alex"
}

响应参数

名称

类型

示例值

描述

id

String

响应id

code

Int

200

响应码 200:成功

message

String

错误消息

localizedMsg

String

本地语言错误消息

data

无返回

响应示例

{
    "code":200,
    "data":null,
    "id":"162384844xxxx"
}

5.删除用户接口

删除用户账号

路径

/industry/asset/openapi/user/delete

版本

1.0.0

请求参数

名称

类型

是否必填

示例值

描述

loginNameList

JSON

登录账号 集合

请求示例

{
    "loginNameList":["alex","alex1"]
}

响应参数

名称

类型

示例值

描述

id

String

响应id

code

Int

200

响应码 200:成功

message

String

错误消息

localizedMsg

String

本地语言错误消息

data

无返回

响应示例

{
    "code":200,
    "data":null,
    "id":"162384844****"
}

资产数据开放接口

1.空间资产查询

根据Id查询空间资产

路径

/industry/asset/outer/functionlocation/query

版本

1.0.0

请求参数

名称

类型

是否必填

示例值

描述

id

Long

2

空间资产ID

locationSystemId

Long

2

空间系统ID

factoryId

String

132

地点ID

organizationId

String

123

实体ID

请求示例

{
    "id":232
}

响应参数

名称

类型

示例值

描述

id

String

响应id

code

Int

200

响应码 200:成功

message

String

错误消息

localizedMsg

String

本地语言错误消息

data

JSON

  • id

Long

23

空间资产

  • level

Int

1

级别

  • description

String

描述

描述

  • pic

String

abcd.rpg

资产图片

  • name

String

资产名称

资产名称

  • code

String

编号

  • assetTypeCode

String

资产类型编码

  • status

Int

状态,0未启用,1启用

  • functionType

String

功能类型

  • rootLocationCode

String

根位置编码

  • locationSystemName

String

空间系统名称

  • locationSystemCode

String

空间系统编码

  • locationSystemId

Long

空间系统ID

  • parentFunctionLocationId

Long

父空间资产ID

  • parentFunctionLocationCode

String

父空间资产code

  • parentFunctionLocationList

JSON

上级父空间

上级父空间对象, 同上

  • subFunctionLocationList

JSON

下级子空间

下级子空间对象,同上

响应示例

{
    "code":200,
    "data":{
        "code":"test1",
        "assetTypeId":1621933573000,
        "parentFunctionLocationCode":"",
        "level":1,
        "description":"",
        "pic":"",
        "rootLocationCode":"",
        "locationSystemCode":"编码",
        "fullCode":"test1",
        "deleted":0,
        "name":"test1",
        "locationSystemId":1621933573000,
        "assetTypeCode":"test",
        "functionType":"操作",
        "id":1621933573000,
        "parentFunctionLocationId":1621933573000,
        "status":1,
        "parentFunctionLocationList":[
            {
                "gmtModified":1621933872000,
                "code":"test3",
                "assetTypeId":1621933872000,
                "parentFunctionLocationCode":"test1",
                "level":1,
                "factoryId":"132",
                "description":"",
                "pic":"",
                "gmtCreate":1621933872000,
                "rootLocationCode":"test1",
                "organizationId":"87",
                "locationSystemCode":"编码",
                "fullCode":"test1,test2",
                "name":"test3",
                "locationSystemId":1621933872000,
                "assetTypeCode":"test",
                "functionType":"操作",
                "id":1621933872000,
                "parentFunctionLocationId":1621933872000,
                "status":1
            }
        ],
        "subFunctionLocationList":[
            {
                "gmtModified":1621933872000,
                "code":"test3",
                "assetTypeId":1621933872000,
                "parentFunctionLocationCode":"test1",
                "level":1,
                "factoryId":"132",
                "description":"",
                "pic":"",
                "gmtCreate":1621933872000,
                "rootLocationCode":"test1",
                "organizationId":"87",
                "locationSystemCode":"编码",
                "fullCode":"test1,test2",
                "name":"test3",
                "locationSystemId":1621933872000,
                "assetTypeCode":"test",
                "functionType":"操作",
                "id":1621933872000,
                "parentFunctionLocationId":1621933872000,
                "status":1
            }
        ]
    },
    "message":"success",
    "localizedMsg":""
}

2.查询空间下设备清单

路径

/industry/asset/inner/functionlocation/queryvsasset

版本

1.0.0

请求参数

名称

类型

是否必填

示例值

描述

parameter

JSON

参数对象

id

Long

2

空间资产ID

locationSystemId

Long

2

空间系统ID

factoryId

String

132

地点ID

organizationId

String

123

实体ID

code

String

abcd

空间资产编号

searchKey

String

方式

搜索值

status

Int

0

0:未启用 1:启用

请求示例

{
    "parameter":{
        "id":232,
        "locationSystemId":232,
        "status":1,
        "code":"abcd",
        "searchKey":"abcd",
        "organizationId":"123",
        "factoryId":"1"
        }
}

响应参数

名称

类型

示例值

描述

id

String

响应id

code

Int

200

响应码 200:成功

message

String

错误消息

localizedMsg

String

本地语言错误消息

data

JSON

  • id

Long

23

空间资产

  • level

Int

1

级别

  • description

String

描述

描述

  • status

Int

状态,0未启用,1启用

  • pic

String

abcd.rpg

资产图片

  • name

String

资产名称

资产名称

  • code

String

编号

  • assetTypeCode

String

资产类型编码

  • functionType

String

功能类型

  • rootLocationCode

String

根位置编码

  • locationSystemName

String

空间系统名称

  • locationSystemCode

String

空间系统编码

  • locationSystemId

Long

空间系统ID

  • parentFunctionLocationId

Long

父空间资产ID

  • parentFunctionLocationCode

String

父空间资产code

  • parentFunctionLocationList

JSON

上级父空间

上级父空间对象, 同上

  • subFunctionLocationList

JSON

下级子空间

下级子空间对象,同上

  • assetDTOList

JSON

资产设备列表 (资产设备对象)

- - id

Long

资产id

- - assetName

String

资产名称

- -assetCode

String

资产编号

- -assetTypeId

Long

资产类型ID

- -assetTypeCode

String

资产类型编号

- -assetTypeName

String

资产类型名称

- -assetBaseTypeCode

String

资产基础类型

- -factoryId

String

地点id

- -factoryName

String

地点名称

- -organizationName

String

实体名称

- -organizationId

String

实体id

- -status

Int

资产状态,在用:1、待修:2、在修:3、闲置:4、备用:5、已报废:6 新建时默认为”在用“

响应示例

{
    "code":200,
    "data":[{
        "code":"test1",
        "assetTypeId":1621933573000,
        "parentFunctionLocationCode":"",
        "level":1,
        "description":"",
        "pic":"",
        "rootLocationCode":"",
        "locationSystemCode":"编码",
        "fullCode":"test1",
        "deleted":0,
        "name":"test1",
        "locationSystemId":1621933573000,
        "assetTypeCode":"test",
        "functionType":"操作",
        "id":1621933573000,
        "parentFunctionLocationId":1621933573000,
        "status":1,
        "parentFunctionLocationList":[
            {
                "gmtModified":1621933872000,
                "code":"test3",
                "assetTypeId":1621933872000,
                "parentFunctionLocationCode":"test1",
                "level":1,
                "factoryId":"132",
                "description":"",
                "pic":"",
                "gmtCreate":1621933872000,
                "rootLocationCode":"test1",
                "organizationId":"87",
                "locationSystemCode":"编码",
                "fullCode":"test1,test2",
                "name":"test3",
                "locationSystemId":1621933872000,
                "assetTypeCode":"test",
                "functionType":"操作",
                "id":1621933872000,
                "parentFunctionLocationId":1621933872000,
                "status":1
            }
        ],
        "subFunctionLocationList":[
            {
                "gmtModified":1621933872000,
                "code":"test3",
                "assetTypeId":1621933872000,
                "parentFunctionLocationCode":"test1",
                "level":1,
                "factoryId":"132",
                "description":"",
                "pic":"",
                "gmtCreate":1621933872000,
                "rootLocationCode":"test1",
                "organizationId":"87",
                "locationSystemCode":"编码",
                "fullCode":"test1,test2",
                "name":"test3",
                "locationSystemId":1621933872000,
                "assetTypeCode":"test",
                "functionType":"操作",
                "id":1621933872000,
                "parentFunctionLocationId":1621933872000,
                "status":1
            }
        ]
    }],
    "message":"success",
    "localizedMsg":""
}

3.查询资产列表

查询资产列表

路径

/industry/asset/outer/asset/list

版本

1.0.0

请求参数

名称

类型

是否必填

示例值

描述

pageSize

Int

2

页数

pageNo

Int

2

页码

status

Int

132

状态

factoryIdentifier

String

123

工厂标识:非必输,限制资产的所属工厂

locationIdentifier

String

abcd

位置标识:非必输,查询指定位置及其子位置下的全部资产及子资产

parentAssetIdentifier

String

方式

父资产标识:非必输,查询指定父资产下的全部子级资产

searchKey

String

0

搜索关键词

请求示例

{
    "pageSize":232,
    "pageNo":232,
    "status":1
}

响应参数

名称

类型

示例值

描述

id

String

响应id

code

Int

200

响应码 200:成功

message

String

错误消息

localizedMsg

String

本地语言错误消息

data

JSON

- - id

Long

资产id

- - assetName

String

资产名称

- -assetCode

String

资产编号

- -assetTypeId

Long

资产类型ID

- -assetTypeCode

String

资产类型编号

- -assetTypeName

String

资产类型名称

- -assetBaseTypeCode

String

资产基础类型

- -factoryId

String

地点id

- -factoryName

String

地点名称

- -organizationName

String

实体名称

- -organizationId

String

实体id

- -status

Int

资产状态,在用:1、待修:2、在修:3、闲置:4、备用:5、已报废:6 新建时默认为”在用“

响应示例

{
    "code":200,
    "data":[
        {
                    "assetBaseTypeCode":"DEVICE",
                    "factoryCode":"002",
                    "gmtModified":1623338858000,
                    "assetTypeId":2480,
                    "assetTypeName":"yurn",
                    "creatorId":"alex*****",
                    "organizationId":"109",
                    "id":3730,
                    "idStr":"id3730",
                    "assetCode":"dy061002",
                    "organizationName":"dy0603业务实体",
                    "factoryId":"160",
                    "factoryName":"西溪园区",
                    "assetLevel":1,
                    "gmtCreate":1623310058000,
                    "assetCodeFull":"dy061002",
                    "deleted":0,
                    "assetIdStr":"id3730",
                    "rootParentAssetCode":"dy061002",
                    "tenantId":"b71cfe50529a4ab58**********",
                    "assetName":"dy061002设备资产",
                    "assetTypeCode":"ty",
                    "status":1
        }
    ]
}

4.查询设备业务属性

查询设备业务属性

路径

/industry/asset/outer/asset/bizattribute/list

版本

1.0.0

请求参数

名称

类型

是否必填

示例值

描述

pageSize

Int

2

页数

pageNo

Int

2

页码

attributeGroupIdentifier

String

属性组标识

assetId

Long

资产ID

assetTypeId

Long

资产类型ID

attributeTemplateId

Long

资产模板ID

factoryId

String

地点ID

organizationId

String

实体ID

functionLocationCode

String

空间资产code

请求示例

{
    "pageSize":1,
    "assetId":232,
    "assetId":1,
    "attributeGroupIdentifier":"abcd",
    "assetTypeId":1,
    "attributeTemplateId":"123",
    "factoryId":"1"
}

响应参数

名称

类型

示例值

描述

id

String

响应id

code

Int

200

响应码 200:成功

message

String

错误消息

localizedMsg

String

本地语言错误消息

data

JSON

  • total

Long

总数量

  • assetCode

Int

资产编号

  • assetTypeId

String

资产类型ID

  • attributeRelationId

String

资产类型属性关联ID

  • assetId

String

资产ID

  • attributeGroupName

String

资产属性组名称

  • attributeDTO

JSON

状态,0未启用,1启用

- - attributeValue

String

单个值直接存储,多个值时,以逗号分隔存储

- - defaultValue

String

默认值

- - attributeType

Int

属性类型:* 单行文本:1,数字:2,时间:3,单选组:4,附件:5,多行文本:6,日期:7,下拉表:8,复选框:8,主数据:9 * 监控点类型:* 数据类型:* 布尔:10,整数(64位):11,小数(64位):12,枚举(30字节):13,文本(255字节):1,时间:3

- - editable

Int

是否可编辑

- - attributeOrder

Int

排序

- - description

String

描述

- - templateId

Long

模板id

- - precisionFormat

String

精度格式

- - tips

String

提示

- - required

Int

是否必填

- - visable

Int

是否可见

- - templateName

String

模板名称

- - title

String

标题

- - name

String

名称

- - id

Long

id

响应示例

{
    "code":200,
    "data":{
        "total":2,
        "dataList":[
            {
                "attributeDTO":{
                    "visable":1,
                    "defaultValue":"",
                    "editable":1,
                    "attributeType":9,
                    "attributeOrder":9,
                    "id":582,
                    "templateId":794,
                    "precisionFormat":"0",
                    "tips":"",
                    "required":0,
                    "supportThousandsFormal":0
                }
            }
        ]
    },
    "id":"c4ca24da-b416-4e3a-b1fc-4c1b11********"
}

授权登录接口

1.获取Token接口

第三方平台通过账号, 获取工业平台Token接口

路径

/industry/asset/openapi/auth/accesscode/get

版本

1.0.0

请求参数

名称

类型

是否必填

示例值

描述

loginName

String

alex

用户登录账号

hostName

String

www.example.com

当前第三方域名地址

请求示例

{
    "hostName":"123456",
    "loginName":"alex"
}

响应参数

名称

类型

示例值

描述

id

String

响应id

code

Int

200

响应码 200:成功

message

String

错误消息

localizedMsg

String

本地语言错误消息

data

JSON

  • accessCode

String

ea40df******

临时Token (有效期5分钟)

响应示例

{
    "code":200,
    "data":{
        "accessCode":"2bcaa6d69c44451b836e112710*********"
    },
    "id":"1623848449616"
}

2.授权登录接口

携带临时Token(AccessCode), 重定向跳转到工业登录页面,完成最终登录认证

请求协议

HTTPS/HTTP

请求方法

GET

数据签名

不需要

请求路径

/?accessToken=2bcaa6d69c44451b8*****************

请求参数

名称

类型

是否必填

示例值

描述

accessToken

String

dbf03******

临时Token

请求示例

授权登录请求: http://192.168.1.1:32280/?accessToken=2bcaa6d69c44451b8*****************

数据签名

描述

API使用摘要签名认证方式(APP Key和APP Secret), 客户端在调用API时,需要使用签名秘钥对请求内容进行签名计算, 并将签名同步传输给服务器端进行签名验证. API网关提供的SDK内置了签名实现, 您只需要将签名秘钥配置在SDK中.

Java-SDK

sdk地址: https://github.com/aliyun/alibabacloud-iot-api-gateway-sdk

Maven依赖:

        <dependency>
            <groupId>com.aliyun</groupId>
            <artifactId>iotapigateway</artifactId>
            <version>0.0.1</version>
        </dependency>

Demo:

import com.alibaba.fastjson.JSON;
import com.aliyun.iot.industry.model.OrderDetailDTO;
import com.aliyun.iot.industry.model.OrderHeaderDTO;
import com.aliyun.iotapigateway.Client;
import com.aliyun.iotapigateway.models.CommonParams;
import com.aliyun.iotapigateway.models.Config;
import com.aliyun.iotapigateway.models.IoTApiRequest;
import com.aliyun.tea.TeaResponse;
import com.aliyun.teautil.Common;
import com.aliyun.teautil.models.RuntimeOptions;


import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class ClientTest {
    //AppKey由工业平台颁发, 第三方应用需要携带写入请求头
    private static final String APP_KEY = "3283******";
    //AppSecret 由工业平台颁发时与AppKey映射.用于数据签名
    private static final String APP_SECRET = "33741370443da48bc544***************";
    //服务域名/ip
    private static final String HOST = "www.example.com";
    //服务路径
    private static final String PATH = "/industry/asset/openapi/user/add";
                //服务版本,目前默认1.0.0
    private static final String VERSION = "1.0.0";
    private static final String HTTP_COL = "HTTPS";
    private static final String HTTP_METHOD = "POST";

    public static void main(String[] args) throws Exception{
        Config config = new Config();
        config.appKey = APP_KEY;
        config.appSecret = APP_SECRET;
        config.domain = HOST;

        OrderHeaderDTO orderHeaderDTO = initParam();
        Client client = new Client(config);
        Map<String, Object> params = new HashMap<>();

        params.put("loginName", "alex");
        params.put("nickName", "张先生");
        params.put("phone", "13800******");

        CommonParams req = new CommonParams();
        req.apiVer = VERSION;

        IoTApiRequest body = new IoTApiRequest();
        body.params = params;
        body.request = req;

        RuntimeOptions runtime = new RuntimeOptions();

        TeaResponse teaResponse = client.doRequest(PATH, HTTP_COL, HTTP_METHOD, null, body, runtime);
                //请求返回, 解析出对象 Common支持多种转换读取根据实际转换处理
        Object obj = Common.readAsJSON(teaResponse.body);
        Map<String, Object> result = Common.assertAsMap(obj);
        
        //String resultStr = Common.readAsString(teaResponse.body);
                //Gson gson = new Gson();
                //Type type = new TypeToken<TestResponse<TestResponseDetail>>() {}.getType();
                //TestResponse<TestResponseDetail> testResponse = gson.fromJson(resultStr, type);
    }