zoukankan      html  css  js  c++  java
  • 储备学习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
    

  • 相关阅读:
    Java学习之路(四)
    HTML学习之canves元素
    一些常用的SQL查询语句
    数据库实现动态表头
    Java学习之路(三)
    Java学习之路(二)
    Java学习之路(一)
    UML类图几种关系的总结(转)
    vue 项目全局修改element-ui的样式
    NGINX 资料
  • 原文地址:https://www.cnblogs.com/wwbplus/p/11891791.html
Copyright © 2011-2022 走看看