## httpaccess服务接口文档

### 1.服务功能

为设备接入提供注册、登录接口

### 2.接口文档

|接口URL|请求方法|功能说明|
---|---|---
/v1/devices/registration|POST|设备注册
/v1/devices/authentication|POST|设备认证

### 2.1 设备注册接口

* 请求URL: `/v1/devices/registration`
* 请求方法: `POST`
* 请求Header: `无`
* 请求参数: `JSON BODY`

```json
{
  "product_key": "",
  "device_code": "",
  "version": "",
  "module": ""
}
```

|字段|类型|是否必填|说明|
---|---|---|---
product_key|字符串|Y|平台分配的产品Key
device_code|字符串|Y|设备序列号,设备唯一硬件标识，由厂商自定义
version|字符串|Y|固件版本号，由厂商自定义
module|字符串|Y|设备硬件型号，由厂商自定义,如“esp8266”, "MI3"

* 请求响应：

```json
{
  "code": 0,
  "message": "",
  "data": {
    "device_id": 12324,
    "device_secret": "3d6few3ac31w7a6d3f",
    "device_key": "34ffffffff",
    "device_identifier": "64-64-fe4efe"
  }
}
```

|字段|类型|说明|
---|---|---
device_id|数字|设备id
device_secret|字符串|设备密码
device_key|字符串|设备激活码,用来绑定设备
device_identifier|字符串|设备标识符

### 2.2 设备登陆

* 请求URL：`/v1/devices/authentication`
* 请求方式：`POST`
* 请求header：`无`
* 请求body:

```json
{
  "device_id": 123,
  "device_secret": "fsfwefewf23r2r32r23rfs",
  "protocol": "mqtt"
}
```

|字段|类型|是否必填|说明|
---|---|---|---
device_id|数字|Y|设备Id
device_secret|字符串|Y|设备密码
protocol|字符串|Y|协议类型(mqtt,coap)

* 请求响应:

```json
{
  "code": 0,
  "message": "",
  "data": {
    "access_token": "3sffefefefefsf",
    "access_addr": "202.114.0.242:8080"
  }
}
```

|字段|类型|说明|
---|---|---
access_token|字符串|设备token
access_addr|字符串|接入服务器地址+端口

> 此接口获取到的access_token,及addcess_addr作为mqtt服务接入的password和服务地址