drf—Web_API接口
1、什么是接口
规定了提交请求参数的请求方式、访问其可以获取响应的反馈数据的url链接
2、四大特点
1、url
长得向返回数据的url链接,如https://api.map.baidu.com/place/v2/search
2、请求方式:get\post\put\patch\delete
采用get方式请求上访接口
3、请求参数:json或xml格式的key-value类型数据,如:
ak: 6E823f587c95f0148c19993539b99295
region:上海
query:肯德基
output:json
4、响应结果:json或xml格式的数据
上方请求参数的output参数值决定了响应数据的格式
{
"status":0,
"message":"ok",
"results":[
{
"name":"肯德基(罗餐厅)",
"location":{
"lat":31.415354,
"lng":121.357339
},
"address":"月罗路2380号",
"province":"上海市",
"city":"上海市",
"area":"宝山区",
"street_id":"339ed41ae1d6dc320a5cb37c",
"telephone":"(021)56761006",
"detail":1,
"uid":"339ed41ae1d6dc320a5cb37c"
}
...
]
}
3、接口文档的编写:YApi
4、接口测试工具:Postman
5、REST接口编写规范
推荐博客:REST接口设计规范
5.1 url
1、使用https协议,保证数据安全
2、使用关键字api标识
3、若数据有版本区别,需要加以区分,如v1、v2
4、获取资源,以资源名作为接口名,不加操作动词来标识
5、基于上一条,若接口与资源无紧联系或者动词本身即为接口核心含义,那么可使用动词
6、群资源一般还有额外的限制条件,如排序、限制条数、分页等等
示例:
https://api.baidu.com/v2/books/
https://api.baidu.com/v1/books/?ordering=-price&limit=3
5.2 五大请求方式
资源操作由请求方式决定,一般涉及到增删改查
特点是url相同,利用cbv视图处理不同的请求
1)get请求
获取所有的或者主键为1的书
2)post请求
新增一本书或者新增多本书,不需要主键,都是在books上操作
3)put请求
整体修改资源,整体指的是,以一本书的数据为整体,必须上传该书所有的信息,包括未修改的部分、
4)patch请求
局部修改,局部指的是可以只上传修改的部分,因此patch也能实现put请求的要求,一般使用patch而不使用put
5)delete请求
删除所有的书或者删除指定主键的书
5.3 响应结果
网络状态码
# 正常
200 常规请求
201 创建成功
# 重定向
301 永久重定向
302 暂时重定向
# 客户端异常
403 请求无权限
404 请求路径不存在
405 请求方法不存在
# 服务器异常
500 服务器异常
数据
1、响应数据要有数据状态码、状态信息以及数据本身
{
"status": 0, # 数据状态码,自定义
"msg": "ok", # 数据状态描述信息
"results":[ # 数据
{
"name":"肯德基(罗餐厅)",
"location":{
"lat":31.415354,
"lng":121.357339
},
"address":"月罗路2380号",
"province":"上海市",
"city":"上海市",
"area":"宝山区",
"street_id":"339ed41ae1d6dc320a5cb37c",
"telephone":"(021)56761006",
"detail":1,
"uid":"339ed41ae1d6dc320a5cb37c"
}
...
]
}
2、需要url请求的资源需要访问资源的请求链接,包括图片,音频和视频等
{
"status": 0,
"msg": "ok",
"results":[
{
"name":"肯德基(罗餐厅)",
"img": "https://image.baidu.com/kfc/001.png"
}
...
]
}