# 物理世界接口文档
### 术语说明:

#### 对象
基于数据字典类型和信息点定于创建的实例


```
数据字典默认每个类型都有id、name、localId、localName，需要项目和应用在数据字典服务中订阅
id、name、localId、localName对应原来的（如设备）EquipID、EquipName、EquipLocalID、EquipLocalName，值也相同，修改一方会同时修改另一方（无论是否订阅另一方）
长期计划来讲数据字典和物理世界将取消（如设备）EquipID、EquipName、EquipLocalID、EquipLocalName这类信息点，对象统一使用id、name、localId、localName

```

### 字段约定

| 字段      | 说明                          | 备注 |
| -------- | ----------------------------- | ---- |
| objectId | 对象id                          |      |
| classCode  | 类型编码                              |      |

### 数据结构

对象 object

| 字段       | 数据类型  | 说明                                                       |
| ---------- | -------- | --------------------------------------------------------- |
| id         | String   | id，全局唯一                                                |
| projectId  | String   | 项目id，不可为空                                             |
| classCode  | String   | 类型code，不可为空                                          |
| 其他信息点编码   | 根据信息点定义   |                                                     |
|            |          |                                                           |

### 接口

#### 通用参数
传参方式: 拼接在url后

| 参数名       | 数据类型 | 说明  |
| ----------  | -------- | ------------------------- |
| projectId   | String   | 项目id,不可为空             |
| appId       | String   | 应用id,不可为空             |
|             |          |                           |


#### 基础接口: 创建对象
接口说明
```
根据projectId 和 appId 从数据字典查询出已订阅的信息点清单list, 并根据信息点清单list对入参数据进行合法性校验
不在信息点清单list中的参数将被忽略
该接口为批量创建接口，只有全部对象创建成功才会返回成功，不存在部分成功部分失败的情况
```
请求地址
```
POST: /object/create
```

请求参数

```
[
    {
        "classCode": "类型编码,不可为空",
        "信息点编码": "值"
    }
]
```
返回内容

```
{
    "result": "success",
    "message": "错误信息,如果接口发生错误会返回该字段"
}
```

#### 基础接口: 更新对象

接口说明

```
根据projectId 和 appId 从数据字典查询出已订阅的信息点清单list, 信息点编码即为入参字段名，并根据信息点清单list对入参数据进行合法性校验
不在信息点清单list中的入参字段将被忽略
两组(id和（classCode，EquipID))参数必须传一组(本例中EquipID对应设备ID,其他如ProjID对应项目ID等)

```

请求地址

```
POST: /object/update
```

请求参数

```
[
    {
        "id": "对象id",
        "classCode": "类型编码,不可为空",
        "信息点编码": "值"
    }
]
```
返回内容

```
{
    "result": "success",
    "message": "错误信息,如果接口发生错误会返回该字段"
}
```

#### 基础接口: 删除对象

接口说明

```
删除id对应的对象
id不存在时将被忽略

```

请求地址

```
POST: /object/delete
```

请求参数

```
[ "id1", "id2", "id3"]
```
返回内容

```
{
    "result": "success",
    "message": "错误信息,如果接口发生错误会返回该字段"
}
```
#### 基础接口: 查询对象

接口说明

```
参考通用查询接口
查询字段和排序字段必须是项目和应用订阅了的信息点对应的字段
返回的字段为项目和应用已订阅的信息点字段
```

请求地址

```
POST: /object/query
```

请求参数

```
{
    "criteria": {
        "classCode": "ACCCOT"
    },
    "orders": [
        {
            "column": "createTime",
            "asc": true
        }
    ],
    "page": 1,
    "size": 10
}
```
返回内容

```
{
    "result": "success",
    "count": 12,
    "data": [
        {
            "信息点编码": "值"
        }
    ]
    "message": "错误信息,如果接口发生错误会返回该字段"
}
```
