上网配置向导流程接口信息

1 需求原型图

https://lanhuapp.com/web/#/item/project/product?tid=3ffc6af0-d0f1-4afc-9041-e05d71f4d94b&pid=f359468e-033c-43b9-9c4c-4722bc78c3e3&versionId=932aafb6-6010-4cd7-a348-1232e3ce00dc&docId=90717fce-78d8-4242-b680-af0cea8d7a1c&docType=axure&pageId=1f2d690fb3c84673b3dc1cc6a49b6e4f&image_id=90717fce-78d8-4242-b680-af0cea8d7a1c

2 数据模型

接口中所使用到的通用数据结构,提取出来以规范接口的字段定义

2.1 端口信息 Port

格式:

No 关键字 值类型 描述 是否必须
1 name string 端口的名称(wan、lan1、lan2、lan3、lan4) Y
4 status number 端口的状态(1:linkup,0:linkdown) Y

例子1:

  1. {
  2. "name": "wan",
  3. "status": 1
  4. }

例子2:

  1. {
  2. "name": "lan2",
  3. "status": 0
  4. }

2.2 WiFi信息 Wifi

格式:

No 关键字 值类型 描述 是否必须
1 wdbi number wifi 双频合一(Wifi dual band integration) ; 1:enable,0:disable Y
2 ssid string wifi 名称 (双频合一开启时使用) N
3 passwd string wifi 密码(双频合一开启时使用) N
4 routerPwd string 路由器密码 N
4 wifi24G object 2.4G wifi 配置(devPara 参数),双频合一关闭时使用 N
5 ssid string 2.4G wifi 名称 N
6 mode string 2.4G的加密模式,取值: “None”, “WPA2” ,”WPA2/WPA3”,”None”时忽略密码 N
7 wifi5G object 5G wifi 配置(devPara 参数), 双频合一关闭时使用 N
8 ssid string 5G wifi 名称 N
9 passwd string 5G wifi 密码 N
10 mode string 5G的加密模式,取值: “None”, “WPA2” ,”WPA2/WPA3”,”None”时忽略密码 N

例子:

  1. {
  2. "wdbi": 0,
  3. "ssid": "wdbi-account",
  4. "passwd": "wdbi-passwd",
  5. "routerPwd": "router-passwd",
  6. "wifi24G": {
  7. "ssid": "24g-account",
  8. "passwd": "24g-passwd",
  9. "mode": "None"
  10. },
  11. "wifi5G": {
  12. "ssid": "5g-account",
  13. "passwd": "5g-passwd",
  14. "mode": "None"
  15. }
  16. }

2.3 宽带信息 Broadband

格式:

No 关键字 值类型 描述 是否必须
1 user string 宽带账户 Y
2 passwd string 宽带密码 Y

例子:

  1. {
  2. "user": "test-account",
  3. "passwd": "123456"
  4. }

2.4 网络信息 Network

格式:

No 关键字 值类型 描述 是否必须
1 ip string IP地址 Y
2 subnet string 子网掩码,指示本地网络的 IP 地址范围 Y
3 gateway string 默认网关,定义了连接到其他网络时使用的下一个跃点 IP 地址 Y
4 dns object DNS 服务器 IP 列表,定义了将主机名解析为 IP 地址时要使用的 DNS 服务器 Y
5 primary string 首选DNS服务器 Y
6 secondary string 备用DNS服务器 N

例子:

  1. {
  2. "ip": "192.168.1.100",
  3. "subnet": "255.255.255.0",
  4. "gateway": "192.168.1.1",
  5. "dns": {
  6. "primary": "223.5.5.5",
  7. "secondary": "223.6.6.6"
  8. }
  9. }

3 接口设计

以下接口用于本地服务调用,所以请求服务地址为localhost或127.0.0.1

返回内容格式:

No 关键字 值类型 描述 是否必须
1 code number 回应返回值 0 表示执行成功,大于0 表示错误 Y
2 info string 返回值错误时,描述错误的原因 N
3 res object 数据(包含数据模型,或其他内容) N

返回成功例子:

  1. {
  2. "code": 0,
  3. "res": {
  4. ...
  5. }
  6. }

返回失败例子:

  1. {
  2. "code": 400,
  3. "info": "exception info"
  4. }

3.1 获取全局数据接口

在页面打开时调用,获取展示所需的公共数据(标题栏上的后台地址,设备名称等),这些数据通常是不变的,前端在一次获取后直接缓存

请求方式:

  1. GET /rl/dev/global

请求参数格式:无

返回内容格式:

No 关键字 值类型 描述 是否必须
1 code number 回应返回值 0 表示执行成功,大于0 表示错误 Y
2 info string 返回值错误时,描述错误的原因 N
3 res object 数据 Y
4 dn string 设备名称 Y
5 admin string 后台管理系统信息地址 Y

返回成功例子:

  1. {
  2. "code": 0,
  3. "res": {
  4. "dn": "RicherLink_R30L",
  5. "admin": "richerlink.com"
  6. }
  7. }

返回失败例子:

  1. {
  2. "code": 400,
  3. "info": "exception info"
  4. }

3.2 检查端口连接状态接口

检查WAN口已连接到入户网口或光猫,同时这个接口也支持检查lan口的状态

请求方式:

  1. GET /rl/dev/port

请求参数格式:无

返回内容格式:

No 关键字 值类型 描述 是否必须
1 code number 回应返回值 0 表示执行成功,大于0 表示错误 Y
2 info string 返回值错误时,描述错误的原因 N
3 res Port(array) 返回一个端口信息的数组 Y

返回成功例子1:

  1. {
  2. "code": 0,
  3. "res": [
  4. {"name": "wan", "status": 1}
  5. ]
  6. }

返回成功例子2:

  1. {
  2. "code": 0,
  3. "res": [
  4. {"name": "lan1", "status": 1},
  5. {"name": "lan2", "status": 0},
  6. {"name": "lan3", "status": 0},
  7. {"name": "lan4", "status": 1}
  8. ]
  9. }

返回失败例子:

  1. {
  2. "code": 400,
  3. "info": "exception info"
  4. }

3.3 网络信息设置接口

根据用户的选择,传递不同参数来进行上网设置

  1. POST /rl/dev/network

请求参数格式:

No 关键字 值类型 描述 是否必须
1 type string 用户选择的上网方式(dhcp-自动获取IP,pppoe-宽带拨号上网,static-静态IP上网) Y
2 par Broadband(object)、Network(object) 当用户选择dhcp方式上网时,不用提供par。当选择pppoe上网时par为宽带信息Broadband,当选择static静态IP上网时par为网络信息Network N

返回内容格式:默认格式

请求例子——DHCP

  1. {
  2. "type": "dhcp"
  3. }

请求例子——PPPOE

  1. {
  2. "type": "pppoe",
  3. "par":{
  4. "user": "test-account",
  5. "passwd": "123456"
  6. }
  7. }

请求例子——STATIC

  1. {
  2. "type": "static",
  3. "par":{
  4. "ip": "192.168.1.100",
  5. "subnet": "255.255.255.0",
  6. "gateway": "192.168.1.1",
  7. "dns": {
  8. "primary": "223.5.5.5",
  9. "secondary": "223.6.6.6"
  10. }
  11. }
  12. }

返回成功例子

  1. {
  2. "code": 0
  3. }

返回失败例子

  1. {
  2. "code": 400,
  3. "info": "exception info"
  4. }

3.4 网络信息获取接口

获取当前的网络信息,当用户没有设置网络信息时,将返回当前的用户上网方式。用户设置完成网络信息后,将返回设置后的网络信息。

请求方式:

  1. GET /rl/dev/network

请求参数格式:无

返回参数格式:

No 关键字 值类型 描述 是否必须
1 code number 回应返回值 0 表示执行成功,大于0 表示错误 Y
2 info string 返回值错误时,描述错误的原因 N
3 res object 数据 Y
4 type string 当前的设备上网方式(dhcp-自动获取IP,pppoe-宽带拨号上网,static-静态IP上网) Y
7 broadband Broadband(object) 宽带信息 N
8 network Network(object) 网络信息 N

返回成功例子——DHCP

  1. {
  2. "code": 0,
  3. "res": {
  4. "type": "dhcp",
  5. "network": {
  6. "ip": "192.168.1.100",
  7. "subnet": "255.255.255.0",
  8. "dns": {
  9. "primary": "223.5.5.5"
  10. }
  11. }
  12. }
  13. }

返回成功例子——PPPOE

  1. {
  2. "code": 0,
  3. "res": {
  4. "type": "pppoe",
  5. "broadband": {
  6. "user": "test-account",
  7. "passwd": "123456"
  8. },
  9. "network": {
  10. "ip": "192.168.1.100",
  11. "dns": {
  12. "primary": "223.5.5.5"
  13. }
  14. }
  15. }
  16. }

返回成功例子——STATIC

  1. {
  2. "code": 200,
  3. "res": {
  4. "type": "static",
  5. "network": {
  6. "ip": "192.168.1.100",
  7. "subnet": "255.255.255.0",
  8. "gateway": "192.168.1.1",
  9. "dns": {
  10. "primary": "223.5.5.5",
  11. "secondary": "223.6.6.6"
  12. }
  13. }
  14. }
  15. }

返回失败例子

  1. {
  2. "code": 400,
  3. "info": "exception info"
  4. }

3.5 WiFi设置接口

设置wifi信息, 沿用之前马电的设计,在结构上多了一个当前路由器的密码routerPwd字段

  1. POST /rl/dev/wifi

请求参数格式:WiFi信息 Wifi

请求例子:

  1. {
  2. "wdbi": 0,
  3. "ssid": "wdbi-account",
  4. "passwd": "wdbi-passwd",
  5. "routerPwd": "router-passwd",
  6. "wifi24G": {
  7. "ssid": "24g-account",
  8. "passwd": "24g-passwd",
  9. "mode": "None"
  10. },
  11. "wifi5G": {
  12. "ssid": "5g-account",
  13. "passwd": "5g-passwd",
  14. "mode": "None"
  15. }
  16. }

返回内容格式:默认格式

返回成功例子:

  1. {
  2. "code": 0
  3. }

返回失败例子:

  1. {
  2. "code": 400,
  3. "info": "exception info"
  4. }

3.6 Wifi获取接口

在上面设置完成之后,可以通过这个接口获取WiFi信息,这里为了保持一致,提交的Wifi设置和获取的Wifi设置格式一致。

  1. GET /rl/dev/wifi

请求参数格式:无

返回内容格式:

No 关键字 值类型 描述 是否必须
1 code number 回应返回值 0 表示执行成功,大于0 表示错误 Y
2 info string 返回值错误时,描述错误的原因 N
3 res Wifi(object) 返回Wifi信息 Y

返回成功例子:

  1. {
  2. "code": 0,
  3. "res": {
  4. "wdbi": 0,
  5. "ssid": "wdbi-account",
  6. "passwd": "wdbi-passwd",
  7. "routerPwd": "router-passwd",
  8. "wifi24G": {
  9. "ssid": "24g-account",
  10. "passwd": "24g-passwd",
  11. "mode": "None"
  12. },
  13. "wifi5G": {
  14. "ssid": "5g-account",
  15. "passwd": "5g-passwd",
  16. "mode": "None"
  17. }
  18. }
  19. }

返回失败例子:

  1. {
  2. "code": 400,
  3. "info": "exception info"
  4. }