传统API和RESTfulAPI传统API获取用户信息get/api/user/read更新用户信息post/api/user/update添加用户信息post/api/user/add删除用户信息post/api/user/deleteRestfulAPI获取用户信息get/api/user/1更新用户信息put/api/user/1添加用户信息post/api/user删除用户信息delete/api/user/1区别是一样的:数据一般返回在json或xml格式不同:RestfulAPI:操作的是资源;增删改查对应http动词传统API:只有get/post动词;HTTP状态码注意:API接口返回的JSON数据包含业务状态码,不是HTTP状态码2XX系列200请求成功(作用于GET方式)201创建成功(作用于POST方式)204更新/删除成功(作用于POST方式)PUT/Deletemethod)4XX系列400invalidrequest(parametererrorornoLegal)401缺少用户认证参数,比如请求没有带Token等。403无权限404请求的资源不存在405请求方法(get/post/put/delete)不允许使用5XX系列500Internalservererror(一般使用,无需区分具体错误)501FunctiondoesnotimplementAPI数据结构返回的JSON数据结构需要团队约定,一般必须包含3项:业务状态码、消息、数据//API返回数据结构如下{"status":0,"msg":"OK","result":[]}封装一个方法:格式化通用API接口数据结构函数formatDataByJson($status,$msg,$data=[],$httpCode=200){$result=['status'=>$status,'msg'=>$msg,'data'=>$data];returnjson($result,$httpCode);}API异常处理API数据安全安全问题黑客获取数据通常有2种方式:1.抓包2.反编译1.请求地址,暴露header参数和body数据(使用加密),有效时间,唯一性解决)2.返回数据明文暴露(可以通过加密解决)3.担心反编译(有反编译工具打包)4.跨站XSS脚本根据安全问题有两种Token的生成方式。客户端生成Token。客户端工程师和服务器工程师就规则达成一致。客户端工程师将加密后的Token按照约定的规则发送给服务端,服务端按照约定的规则进行解密。正好。服务端生成的token,在请求任何API接口之前,必须先请求一个API接口,获取服务端生成的Token。获取到Token后,再请求其他API接口。Token为请求时间+型号+设备号+系统类型加密(aesEncryption)HTTP头存储基本参数1、token(加密校验参数)必填2、content-type(application/json)必填--------------------以下是可选的,可选的,让开发者自己定义3、app-type(应用类型:android/ios/pc)4、did(设备编号)5、版本(version)6、型号(model)
