《电梯安全运行监测终端鉴权方式、RESTful Web API 含状态传输Web服务.docx》由会员分享,可在线阅读,更多相关《电梯安全运行监测终端鉴权方式、RESTful Web API 含状态传输Web服务.docx(9页珍藏版)》请在课桌文档上搜索。
1、附录A(规范性)鉴权方式A.1接入鉴权,请求鉴权时需要利用到http头部的字段设置,http消息头部涉及到的定义见表A.1表A.1名称字段说明类型Content-Type必须指定为application/json签名值signature根据下面的举例算法计算得到供应商IDprovider_id由接入中心分配时间戳utc_sec时间戳,UtC时间,单位:秒电梯设备IDdevice_id电梯设备ID随机串rand_str参与计算签名值计算,客户端随机生成A.2鉴权方法在客户端接入前,需要先向接入中心申请相应的PrOVideJid跟token,其中token是私密的,需要用户妥善保管,以备用于向接入
2、中心鉴权。客户端在数据上报时,通过在http头部附带上上面的字段,以备接入中心进行对数据包进行鉴权在填充http头时,需要生成签名字段SinatUre,生成签名的基本思路是根据http头部的几个专门字段,再联合token跟消息体,通过特定的算法生成签名。生成签名算法示例如下(g。Iang):/prividerld:设备供应商ID/token:数据中心给供应商分配的密匙/ZdeviceId:电梯设备ID/randStr:随机自符串,由客户端生成/ZutcSecTime:UTC时间,秒/content:消息体内容funcGenSignature(providerIdstring,tokenstri
3、ng,deviceldstring,randstrstring,UtcSecTimestring,contentstring)stringIocalSignStr:=providerid+T+token+“+UtcSecTime+“+randstr+“+deviceld+I+contentshalnfo:=sha256.Sum256(byte(1ocalSignStr)returnhex.EncodeToString(shalnfo:)now:=strconv.FormatIntCtime.Now().Unix(),10)获取时间戳字符串,UTC时间(秒)providerid:=供应商品牌名称
4、xxx”token:=私密TOkenXXXXyyyzzz”deviceID:=adfdfarfadfaerfadfasdfadsdfadfa”randstr:=xxxxxxxx随机字符串,非空content:=xxxx”消息体内容计算得到请求签名signature:=GenSignatUre(供应商ID”,token,deviceID,randstr,now,content)当接入中心收到客户端请求时,会做两个校验动作:比较系统时间和请求中的UtjSeC表示的时间,如果两者相差超过3分钟,则认为是非法请求返回http错误码403(禁止,即使有授权也不需要访问).接入中心会根据用户的请求用同样的
5、算法生成一个新的签名,再与http头中的SignatUre字段进行比较,只有两个签名相等时才会鉴权通过,否则服务端返回http错误码401(未授权一未授权客户机访问数据)只有通过上面的所有检验,接入中心才会接受请求,进入业务处理流程附录B(资料性)RESTfuIWebAPI含状态传输Web服务B.1APl设计数据的提供方式采用RESTFUI(RePreSentatiOnaIStateTranSfer)风格的HTTPAPI,使用符合IETFRFC2616的http协议中的方法名来对资源执行不同的操作。GET:获取资源的方法;PUT:更新资源的方法;POST:创建资源的方法;DELETE:删除资源
6、的方法。主要用于消息上报,POST方法示例如表B.1表B.1url操作方法说明apivllift设备代码/faultPOST上报电梯的故障信息apivllift设备代码/eventPOST上报电梯的事件信息apivllift设备代码/alarmPOST上报电梯的告警信息apivllift设备代码/statusPOST上报电梯的实时状态信息(定时上报)apivllift设备代码/faultPOST上报自动扶梯的故障信息apivllift设备代码/eventPOST上报自动扶梯的事件信息apivllift设备代码/alarmPOST上报自动扶梯的告警信息apivllift设备代码/statusPO
7、ST上报自动扶梯的实时状态信息(定时上报)B.2API具体协议按照RESTFUlapi设计风格,Url中会带有提前定义好的可变字段,比如apivllift设备代码fault这个url,设备代码这部分将对应客户端的设备代码。例如:当客户端一个请求apivlliftaabbccfault的POST方法时,表示客户端上报设备代码为aabbcc的电梯的故隙。客户端数据上报,会收到一个表示接口请求结果的返回码ret/ode,各种错误码如下:100:请求成功101:设备没有注册或设备不存在102:内部逻辑错误103:内部网络错误待补充。OOB.2.1上报电梯故障信息示例:URLapivllift设备代码f
8、ault请求消息体请求中包含设备实时运行状态信息和故障信息(real_time_statu_info”实时运行状态部分“time_stamps”:2022-10-2012:20:30”,设备时间戳“Servicejnode”:2,当前服务模式acar_status*:0,/0:停止,1:运行car-directionw:1,轿厢运行方向udoor_zone*:true,是否在开锁区域“cajposition”:20,电梯所在楼层udoor_status*:true,是否关门到位passengen_statusw:true,轿厢内是否有人“message_code”:5,8一个故障导致多个错误代
9、码被记录响应结果格式(ret-codew:100,返回码“erjdesc”:xxyy,结果描述B.2.2上报电梯事件信息示例:URLapivlIift设备代码event请求消息体请求中包含设备实时运行状态信息和event信息(mrealtimestatuinfo”实时运行状态部分“timestamps”:2022-10-2012:20:30,设备时间戳“serviCemOde:2,当前服务模式carstatus*:0,/0:停止,1:运行ucardirection,:1,/轿厢运行方向mdoorzone*:true,是否在开锁区域wcarposition*:20,电梯所在楼层udoorstat
10、us*:true,/是否关门到位upassengenstatus*:true,轿厢内是否有人“message_code”:41一个事件可能导致多个错误代码被记录)响应结果格式(uretcodew:100,返回码“errdesc”:xxyy”,结果描述)B.2.3上报电梯报警信息示例:URLapivlIift设备代码alarm请求消息体请求中包含设备实时运行状态信息和alarm信息t4realtimestatuinfo,实时运行状态部分“time_StamPs”:“2022T0-2012:20:30”,设备时间戳“servicemode:2l/当前服务模式ucarstatus*:0,/0:停止,
11、1:运行4tcardirection,z1,轿厢运行方向4tdoorzone*:true,是否在开锁区域ucarposition*:20,电梯所在楼层44doorstatus*:true,是否关门到位uPassengenstatus*:true,轿厢内是否有人wmessagecole:41一个alarm可能导致多个错误代码被记录)响应结果格式uretcodew:100,返回码“erjdesc“:“xxyy”,结果描述B.2.4上报电梯实时状态这类实时状态数据需要定时上报,1分钟一次。注:为避免拥塞,定时逻辑不要集中在每一分钟的开始时触发,否则大量的设备都在一分钟的头几秒内上报,会造成流量尖峰为
12、后台制造不必要的压力。示例:URLapivlIift/设备代码status请求消息体(itreal_time_statu_info,实时运行状态部分441ime_stampsn:u2022-10-2012:20:30”,“Servicejnode”:2,当前服务模式cajstatus:0,/0:停止,1:运行car_direction,:1,轿厢运行方向mdoor_zone*:true,是否在开锁区域“cajposition”:20,电梯所在楼层Mdoor_status*:true,是否关门到位Upassengen_status*:true,轿厢内是否有人)设备时间戳)响应结果格式ft“ret
13、_code”:100,返回码“erjdesc:xxyy,结果描述B.2.5上报自动扶梯与人行道故障信息示例:URLapivlescalator设备代码fault请求消息体请求中包含设备实时运行状态信息和故障信息(tireal_time_statu_info,实时运行状态部分“iime_stamps”:2022TO-2012:20:30”,设备时间戳“serVicejnode:2,当前服务模式uoperation_status*:0,运行状态,0:停止,1:运行“operaIion_direction:1,运行方向message,code-:61,64一个故障或事件可能导致多个错误代码被记录响应
14、结果格式(“ret_code”:100,返回码“err_de$c”:错误描述)示例:URLapivlescalator设备注册码/event请求消息体请求中包含设备实时运行状态信息和event信息(*real_time_StatU_info”/实时运行状态部分“time一StanIPs”:“2022-10-2012:20:30”,设备时间戳“serviCeJnode:2,当前服务模式*operation_status*:0,运行状态,0:停止,1:运行4toperation_direction,:1,运行方向)“message_code:76-个事件可能导致多个错误代码被记录)响应结果格式(r
15、et-codew:100,返回码“err_desc:“,错误描述B.2.7上报自动扶梯与人行道报警信息示例:URLapivlescalator(设备注册码/alarm请求消息体请求中包含设备实时运行状态信息和alarm信息(ureal_time_statu_info,实时运行状态部分“time一StamPS”:2022TO-2012:20:30”,设备时间戳“servicejnode”:2,当前服务模式uoperation_status*:0,运行状态,0:停止,1:运行uoperation_direction,:1,运行方向)“me$sage_code”:76一个alarm可能导致多个错误代
16、码被记录响应结果格式(“reJcode”:100,返回码“erjdesc:错误描述)这类实时状态数据需要定时上报,1分钟一次。注:为避免拥塞,定时逻辑不要集中在每一分钟的开始时触发,否则大量的设备都在一分钟的头几秒内上报,会造成流量尖峰为后台制造不必要的压力。示例:LKLapivlescalator设备注册码/status请求消息体请求中包含设备实时运行状态信息和alarm信息(“real_time_statu_info”实时运行状态部分“time_stamps”:“2022T0-2012:20:30,设备时间戳“servicejnode”:2,当前服务模式“operation_status”:0,运行状态,0:停止,1:运行4*operation_directionv:1,运行方向“message_code”:76一个alarm可能导致多个错误代码被记录响应结果格式(aret,codew:100,返回码“erjdesc:“,错误描述