储备学习drf的基本认知

储备学习drf的基本认知

drf框架 学什么?(Django-rest framework)

  • 接口:
  • 接口规范:
  • drf生命周期:
  • 序列化组件:
  • 三大认证组件:
  • 过滤、筛选、排序、分页组件:
  • 请求、响应、解析、异常模块:
  • jwt:

储备知识:再说http和wsgi

http协议(基于tcp协议)

"""
http协议(基于tcp协议)
    应用层协议
    请求与响应规范:首行 - 头 - 体
    特点:无状态、无连接、请求永远是客户端到服务器端、ssl
    无状态:HTTP无状态协议,是指协议对于交互性场景没有记忆能力。服务器中没有保存客户端的状态,客户端必须每次带上自己的状态去请求服务器
    无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接
"""

wsgi协议

'''
wsgi协议
    原生django启动项目 - 启动了server socket - wsgiref(开发环境)
                                          - uWSGI(项目上线)
    规定数据的解析方式:
        get数据、post数据(数据数据) => request => 回调的视图函数
        返回响应对象 - HTTPResponse类对象 - 数据、响应状态码
    服务器scoket遵循的协议
''

关键词:完整流程

  • 1.客户端经由http协议把数据发送给服务端,服务端socket遵循wsgi协议把请求数据封装成request对象给django。
  • 2 服务端django把返回的数据给socket,socket遵循wsgi协议把返回的数据封装成响应对象,然后经由http协议发送给客户端,客户端通过如ajax遵循wsgi协议把返回的数据解析出来给前台使用。

接口

"""
url链接:http://api.oldboy.com/login/
请求方式:get | post | put ...
请求参数:username | password
响应结果:result | data
"""

"""
url链接如何书写、请求到底采用什么方式、规定哪些参数是必传或是选填、到底响应什么数据 => 接口规范
"""

restful接口规范

1)一般都采用安全协议(接口都是操作数据的):https

2)体现接口的关键字:api
https://api.oldboy.com
https://www.oldboy.com/api

3)接口操作的数据称之为资源:采用资源名称的复数
https://api.oldboy.com/books/
https://api.oldboy.com/users/

4)接口链接中不出现操作资源的动词,通过请求方式来决定操作资源的动作
https://api.oldboy.com/books/
get:获取所有 | post:增加一个
https://api.oldboy.com/books/(?P)/
get:获取一个 | put:整体修改一个(patch:局部修改一个) | delet:删除一个

5)资源数据有多版本时,接口可以做版本控制
https://api.oldboy.com/books/v1/
https://api.oldboy.com/v2/books/

6)资源响应的限制条件:筛选、排序、限制...
https://api.oldboy.com/books/?publish=1&ordering=-price&limit=3

7)响应状态码
网络状态码:2xx | 3xx | 4xx | 5xx
数据状态码(约定的):0 | 1 | 2
{
'status': 1,
}
-- SUCCESS(0, "查询成功")
-- NODATA(1, "非正确,无数据,显示基本信息")
-- FEAILED(2, "查询失败")

8)响应结果的信息描述:
{
'status': 1,
'msg': 'login failed'
}

9)响应的结果:get所有:所有资源 | get一个:一个资源 | post、put、patch:新增、修改的资源 | delete:不做任何返回
{
'status': 0,
'msg': 'ok',
'results': [登录的用户对象序列化结果]
}

10)响应结果中有二次资源(用户头像:图片链接,用户详情:详情接口)
要表明请求二次资源的接口

注:通过 接口文档 告诉前台传递的必要和选填参数

百度测试接口

安装postman
https://www.getpostman.com/downloads/
测试接口
method: GET
url: https://api.map.baidu.com/place/v2/search
params:
    ak: 6E823f587c95f0148c19993539b99295
    region: 上海
    query: 肯德基
    output: json

posted @ 2019-11-19 19:21  旧时光清风  阅读(177)  评论(0编辑  收藏  举报