• Rest Framework ---- ajax的header补充 接口 restful接口规范


    ajax的axios其他补充

    // 三种携带数据的方式
    1. 数据包形式
    data:{}   // 后台用 request.POST拿到
    2. 拼接参数形式
    params:{}   // 后台用 request.GET拿到
    3. 请求头形式
    headers:{
        authorization:'请求头信息'
    }  // 后台用 request.META.get('HTTP_AUTHORZITAIONS') 拿到
    

    自定义请求头信息: 后台settings.py中配置

    CORS_ALLOW_HEADERS=[
    	"""把cors默认的请求头写上 默认的在 default.py中
    	后面填写自定义的请求头 不然过不来"""
        'lddragon',
        'authorization'
    ]
    

    想拿到的话 就 使用 request.META

    # request.META 拿到的是一个超级大的字典 请求头的信息都是 HTTP_ + 你传的请求头大写
    request.META.get('HTTP_AUTHORIZATIONS')
    

    Django-rest-framework

    drf Django的插件,所以要提前安装Django , 基于restful规范的原生Django接口

    • 安装:
    pip3 install djangorestframework
    
    • 注册:
    # 记住导入rest_framework 后必须在 settings里面注册
    INSTALLED_APPS = [
    	...
        'rest_framework'
    ]
    

    大纲:

    """
    1.接口:接口的概念,数据接口文档,接口规范(restful)
    2.drf请求生命周期 -cbv
    3.drf基础组件:请求,响应,渲染,解析,异常
    4.drf的序列化(核心):序列化, 模型序列化, 群操作序列化 *****
    5.drf的视图家族 视图类 视图工具类 工具视图类 视图集
    6.drf三大认证(核心):认证,权限,频率   *****
    7.drf的过滤:赛选,搜索,排序,分页,区间,自定义
    """
    

    1.接口

    1.什么是web Api接口?

    通过网络,规定了前后台信息交互规则的url链接,也就是前后台信息交互的媒介

    Web API接口和一般的url链接还是有区别的,Web API接口简单概括有下面四大特点

    • url:长得像返回数据的url链接

    • 请求方式:get、post、put、patch、delete

      • 采用get方式请求上方接口
    • 请求参数:json或xml格式的key-value类型数据

      • ak:6E823f587c95f0148c19993539b99295
      • region:上海
      • query:肯德基
      • output:json
    • 响应结果: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"
                }
                ...
                ]
        }
        

    2.接口文档的编写:YApi

    3.接口测试工具Postman

    • Postman可以直接从官网:https://www.getpostman.com/downloads/下载获得,然后进行傻瓜式安装。

    • Postman是一款接口调试工具,是一款免费的可视化软件,同时支持各种操作系统平台,是测试接口的首选工具。

    2.restful接口规范

    • 接口规范:就是为了采用不同的后台语言,也能使用同样的接口获取到同样的数据

    • 如何写接口:接口规范是 规范化书写接口的,写接口要写 url响应数据 注:如果将请求参数也纳入考量范围,那就是在写 接口文档~

    • 分为两大部分: url 响应数据

    1) 用api关键字标识接口url
        api.baidu.com | www.baidu.com/api
        
    2) 接口数据安全性决定优先选择https协议
    
    3) 如果一个接口有多版本存在,需要在url中标识体现
        api.baidu.com/v1/... | api.baidu.com/v2/...
        
    4) 接口操作的数据源称之为 资源,在url中一般采用资源复数形式,一个接口可以概括对该资源的多种操作方式
        api.baidu.com/books | api.baidu.com/books/(pk)
        
    5) 请求方式有多种,用一个url处理如何保证不混乱 - 通过请求方式标识操作资源的方式
        /books        get         获取所有
        /books        post        增加一个(多个)
        /books/(pk)   delete      删除一个
        /books/(pk)   put         整体更新一个
        /books/(pk)   patch       局部更新一个
    
    6) 资源往往涉及数据的各种操作方式 - 筛选、排序、限制
        api.baidu.com/books/?search=西&ordering=-price&limit=3
    
    • 请求方式(五大请求方式):
    get:获取单个或多个资源
    	- https://api.baidu.com/books/			
            # 群查,返回多个结果对象
    	- https://api.baidu.com/books/(pk)/		
            # 单查,返回单个结果对象
    
    post:新增单个或多个资源
    	- https://api.baidu.com/books/ 
    		# 单增,提交单个数据字典,完成单增,返回单个结果对象
    		# 群增,提供多个数据字典的数组,完成群增,返回多个结果对象
    
    put:整体修改单个或多个资源
    	- https://api.baidu.com/books/
    		# 整体修改多个,提供多个数据字典的数组(数据字典中要包含主键),完成群改,返回多个结果对象
    	- https://api.baidu.com/books/(pk)/
    		# 整体修改单个,提供单个数据字典(主键在url中体现),完成单改,返回单个结果对象
    
    patch:局部修改单个或多个资源
    		# 方式与put完全相同,不同的是:操作的资源如果有5个key-value键值对,put请求提供的字典必须全包含,但是patch提供的字典包含的键值对0~5个都可以
    
    delete:删除单个或多个资源
    	- https://api.baidu.com/books/
    		# 多删,提供多个资源主键数据,完成群删,不做任何资源返回(一般我们会返回结果信息:成功|失败)
    	- https://api.baidu.com/books/(pk)/
    		# 单删,不需要提供额外数据,完成单删,不做任何资源返回(一般我们会返回结果信息:成功|失败)
    
    • 响应结果:
    1.响应对象中要包含网络状态码(网络状态信息和网络状态码捆绑出现,不要额外设置):
    		1xx:基本信息
    		2xx:成功 - 200基本 201新增成功
    		3xx:重定向
    		4xx:客户端错误 - 400错误请求;403请求无权限;404请求资源不存在
    		5xx:服务端错误 - 500服务器错误
    
    2. 数据状态码(一般都是前后台约定规则):
    		0:成功
    		1:失败 - 1xx:具体失败信息(要在接口文档中明确写出)
    		2:无数据 - 2xx:具体无数据信息(要在接口文档中明确写出)
    
    3. 据状态信息(一般不仅仅是对数据状态码的解释,更多是对结果的描述,给前台开发者阅读的)
    
    4. 结果(常量、数组、字典),如果有子资源(图片、音频、视频),返回资源的url链接
    		{	
                "status": 0,
        		"msg": 'ok',
        		"results": [{
        			"name": "西游记",
        			"img": "https://api.baidu.com/media/book/xyj.png"
        		}]
            }
    
  • 相关阅读:
    tomcat安装配置
    Java的jdk环境变量配置
    我为什么在这里写博客
    函数
    java的内部类解析
    常用集合
    java数据类型总结
    Java总结基础知识
    线程的状态和方法
    java对象序列化的理解
  • 原文地址:https://www.cnblogs.com/lddragon1/p/12088711.html
Copyright © 2020-2023  润新知