resuful api
1.面向资源
2.http动词(get post put delete等)来描述动作
3.api格式一般为json
传统api get和post
1.获取用户信息 get /api/user/read
2.更新用户信息 post /api/user/update
3.新增用户信息 post /api/user/add
4.删除用户信息 post /api/user/delete
restful api
1.获取用户信息 get /api/user/1
2.更新用户信息 put /api/user/1
3.新增用户信息 post /api/user/add
4.删除用户信息 delete /api/user/1
HTTP状态码
200 请求成功
201 创建成功
202 更新成功
400 无效请求
401 地址不存在
403 禁止访问
404 请求资源不存在
500 内部错误
API数据结构格式
status 业务状态码
message 提示信息
data 数据层
TP5使用方式
Route::get
Route::post
Route::put
Route::delete
Route::resource
API数据安全介绍
背景
接口请求地址和参数暴露
重要接口返回数据明文暴露
APP登录状态请求的数据完全性问题
代码层数据安全问题
加密方式
MD5
AES
RSA 非对称加密 no效率
如何做
基本参数放入header
每次http请求都携带sign
sign唯一性保证
请求参数 返回数据安全性适当加密
access_token
AES 前端加密 PHP后端解密
api基础信息接口开发以及接口文档详解
如下图所示
header参数作为基准的参数 每次请求都需要携带上
字段 | 参考值 | 备注 |
---|---|---|
sign | 1DASDASCZXCZXASDSAD | 每次http请求的sign校验码 |
version | 1 | 大版本号 |
did | 1ASDADADADSADA | did设备号 |
os | 3.4 | 设备的操作系统 |
model | sanxing1.2 | app的机型 |
access_user_token | ASDASDASDSADSAD | 登录后需要传递这个字段 |
host:
测试域名: test.com
线上域名: a.com
1.接口地址
api/v1/cat
2.请求方式:get
3.请求参数: header头的基本参数
4.http code: 200
5.接口返回
catid: 栏目id
catname: 栏目名称
{
"status": 1,
"message": "OK",
"data": [
{
"catid": 0,
"catname": "首页"
},
{
"catid": 1,
"catname": "综艺"
},
{
"catid": 2,
"catname": "明星"
},
{
"catid": 3,
"catname": "韩娱"
},
{
"catid": 4,
"catname": "看点2"
}
]
}