上网配置向导流程接口信息
1 需求原型图
2 数据模型
接口中所使用到的通用数据结构,提取出来以规范接口的字段定义
2.1 端口信息 Port
格式:
No | 关键字 | 值类型 | 描述 | 是否必须 |
---|---|---|---|---|
1 | name | string | 端口的名称(wan、lan1、lan2、lan3、lan4) | Y |
4 | status | number | 端口的状态(1:linkup,0:linkdown) | Y |
例子1:
{
"name": "wan",
"status": 1
}
例子2:
{
"name": "lan2",
"status": 0
}
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 |
例子:
{
"wdbi": 0,
"ssid": "wdbi-account",
"passwd": "wdbi-passwd",
"routerPwd": "router-passwd",
"wifi24G": {
"ssid": "24g-account",
"passwd": "24g-passwd",
"mode": "None"
},
"wifi5G": {
"ssid": "5g-account",
"passwd": "5g-passwd",
"mode": "None"
}
}
2.3 宽带信息 Broadband
格式:
No | 关键字 | 值类型 | 描述 | 是否必须 |
---|---|---|---|---|
1 | user | string | 宽带账户 | Y |
2 | passwd | string | 宽带密码 | Y |
例子:
{
"user": "test-account",
"passwd": "123456"
}
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 |
例子:
{
"ip": "192.168.1.100",
"subnet": "255.255.255.0",
"gateway": "192.168.1.1",
"dns": {
"primary": "223.5.5.5",
"secondary": "223.6.6.6"
}
}
3 接口设计
以下接口用于本地服务调用,所以请求服务地址为localhost或127.0.0.1
返回内容格式:
No | 关键字 | 值类型 | 描述 | 是否必须 |
---|---|---|---|---|
1 | code | number | 回应返回值 0 表示执行成功,大于0 表示错误 | Y |
2 | info | string | 返回值错误时,描述错误的原因 | N |
3 | res | object | 数据(包含数据模型,或其他内容) | N |
返回成功例子:
{
"code": 0,
"res": {
...
}
}
返回失败例子:
{
"code": 400,
"info": "exception info"
}
3.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 |
返回成功例子:
{
"code": 0,
"res": {
"dn": "RicherLink_R30L",
"admin": "richerlink.com"
}
}
返回失败例子:
{
"code": 400,
"info": "exception info"
}
3.2 检查端口连接状态接口
检查WAN口已连接到入户网口或光猫,同时这个接口也支持检查lan口的状态
请求方式:
GET /rl/dev/port
请求参数格式:无
返回内容格式:
No | 关键字 | 值类型 | 描述 | 是否必须 |
---|---|---|---|---|
1 | code | number | 回应返回值 0 表示执行成功,大于0 表示错误 | Y |
2 | info | string | 返回值错误时,描述错误的原因 | N |
3 | res | Port(array) | 返回一个端口信息的数组 | Y |
返回成功例子1:
{
"code": 0,
"res": [
{"name": "wan", "status": 1}
]
}
返回成功例子2:
{
"code": 0,
"res": [
{"name": "lan1", "status": 1},
{"name": "lan2", "status": 0},
{"name": "lan3", "status": 0},
{"name": "lan4", "status": 1}
]
}
返回失败例子:
{
"code": 400,
"info": "exception info"
}
3.3 网络信息设置接口
根据用户的选择,传递不同参数来进行上网设置
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:
{
"type": "dhcp"
}
请求例子——PPPOE:
{
"type": "pppoe",
"par":{
"user": "test-account",
"passwd": "123456"
}
}
请求例子——STATIC:
{
"type": "static",
"par":{
"ip": "192.168.1.100",
"subnet": "255.255.255.0",
"gateway": "192.168.1.1",
"dns": {
"primary": "223.5.5.5",
"secondary": "223.6.6.6"
}
}
}
返回成功例子:
{
"code": 0
}
返回失败例子:
{
"code": 400,
"info": "exception info"
}
3.4 网络信息获取接口
获取当前的网络信息,当用户没有设置网络信息时,将返回当前的用户上网方式。用户设置完成网络信息后,将返回设置后的网络信息。
请求方式:
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:
{
"code": 0,
"res": {
"type": "dhcp",
"network": {
"ip": "192.168.1.100",
"subnet": "255.255.255.0",
"dns": {
"primary": "223.5.5.5"
}
}
}
}
返回成功例子——PPPOE:
{
"code": 0,
"res": {
"type": "pppoe",
"broadband": {
"user": "test-account",
"passwd": "123456"
},
"network": {
"ip": "192.168.1.100",
"dns": {
"primary": "223.5.5.5"
}
}
}
}
返回成功例子——STATIC:
{
"code": 200,
"res": {
"type": "static",
"network": {
"ip": "192.168.1.100",
"subnet": "255.255.255.0",
"gateway": "192.168.1.1",
"dns": {
"primary": "223.5.5.5",
"secondary": "223.6.6.6"
}
}
}
}
返回失败例子:
{
"code": 400,
"info": "exception info"
}
3.5 WiFi设置接口
设置wifi信息, 沿用之前马电的设计,在结构上多了一个当前路由器的密码routerPwd字段
POST /rl/dev/wifi
请求参数格式:WiFi信息 Wifi
请求例子:
{
"wdbi": 0,
"ssid": "wdbi-account",
"passwd": "wdbi-passwd",
"routerPwd": "router-passwd",
"wifi24G": {
"ssid": "24g-account",
"passwd": "24g-passwd",
"mode": "None"
},
"wifi5G": {
"ssid": "5g-account",
"passwd": "5g-passwd",
"mode": "None"
}
}
返回内容格式:默认格式
返回成功例子:
{
"code": 0
}
返回失败例子:
{
"code": 400,
"info": "exception info"
}
3.6 Wifi获取接口
在上面设置完成之后,可以通过这个接口获取WiFi信息,这里为了保持一致,提交的Wifi设置和获取的Wifi设置格式一致。
GET /rl/dev/wifi
请求参数格式:无
返回内容格式:
No | 关键字 | 值类型 | 描述 | 是否必须 |
---|---|---|---|---|
1 | code | number | 回应返回值 0 表示执行成功,大于0 表示错误 | Y |
2 | info | string | 返回值错误时,描述错误的原因 | N |
3 | res | Wifi(object) | 返回Wifi信息 | Y |
返回成功例子:
{
"code": 0,
"res": {
"wdbi": 0,
"ssid": "wdbi-account",
"passwd": "wdbi-passwd",
"routerPwd": "router-passwd",
"wifi24G": {
"ssid": "24g-account",
"passwd": "24g-passwd",
"mode": "None"
},
"wifi5G": {
"ssid": "5g-account",
"passwd": "5g-passwd",
"mode": "None"
}
}
}
返回失败例子:
{
"code": 400,
"info": "exception info"
}