zoukankan      html  css  js  c++  java
  • Day 70 DRF (First Day)

    DRF (First Day)

    什么是Web API接口

    接口概念

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

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

    • url: 长的想返回数据的url链接

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

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

      • ak: 申请一个
      • region: 上海
      • query: 肯德基
      • output: json
    • 响应结果: json或xml格式的数据

      • 上方请求参数的output参数值决定了响应数据的格式,默认为xml

    接口文档的编写

    使用YApi

    YApi可以搭建在任何本地或云服务器上,完成后台项目开发时的接口编写.为开发,测试等人员提供可视化的接口预览

    http://yapi.demo.qunar.com/

    接口测试工具

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

    https://www.getpostman.com/downloads/

    drf框架安装

    drf框架安装:

    1. drf是Django的插件,所以要提前安装Django
    2. 按照命令: pip install djangorestframework
    3. 使用drf时,要在settings中注册import rest_framework

    restful接口规范

    """
    url链接
    	1) 接口都是操作前后台数据,所以需要保证数据的安全性
    		采用http协议
    	2) 接口用来操作数据,与网址(操作页面)有区别,所以用特定的关键字表示接口
    		采用api关键字
    			- http://api.baidu.com
    			- http://www.baidu.com/api
    	3) 接口操作的数据称之为 资源 ,在url中只体现 资源 名称(名词),不体现操作资源的方式动词
    		常规资源接口
    			- http://api.baidu.com/books/
    			- http://api.baidu.com/books/(pk)/
    		非常规接口 - 和某资源不是特别密切或是不止一种资源
    			- http://api.baidu.com/login/
    			- http://api.baidu.com/place/search/
    	4) 如果一个资源存在多版本结果, 在url链接中要用特定符号来兼容多版本共存
    		v1|v1
    			- http://api.baidu.com/v1/books/
    			- http://api.baidu.com/v2/books/
    	5) 群资源操作,一般还有额外的限制条件,如排序,限制调试,分页等等
    		?限制条件
    			-http://api.baidu.com/v1/books/?ordering=-price&limit=3
    
    
    请求方式
    	6) 五大请求方式
    		get: 获取单个或多个资源
    			- http://api.百度.com/books/
    				群查,返回多个结果对象
    			- http://api.baidu.com/books/(pk)/
    				单查,返回单个结果对象
    		
            post: 新增单个或多个资源
            	- http://api.baidu.com/books/
            		单增,提交单个数据字典,完成单增,返回单个结果对象
            		群增,提供多个数据字典的数组,完成群增,返回多个结果对象
            
            put: 整体修改单个或多个资源
            	- http://api.baidu.com/books/(pk)/
            		整体修改多个,提供多个数据字典的数组(数据字典中要包含主键),完成群改,返回多个结果对象
            	- http://api.百度.com/books/(pk)/
            		整体修改多个,提供单个数据字典(主键在url中体现),完成单改,返回单个结果对象
            
            patch: 局部修改单个或多个资源
            	方式与put完全相同,不同的是: 操作的资源如果有5个key-value键值对,put请求提供的字典必须全包含,但是patch提供的字典包含的键值对0~5个都可以
            	
            delete: 删除单个或多个资源
            	- http://api.baidu.com/books/
            		多删,提供多个资源主键数据,完成群删,不做任何资源返回(一般我们会返回结果信息:成功|失败)
            	- http://api.baidu.com/book/(pk)/
            		单删,不需要提供额外的数据,完成单删,不做任何资源返回(一般我们会返回结果信息:成功|失败)
            		
          
    响应结果
    	7) 响应对象中要包含网络状态码(网络状态信息和网络状态码捆绑出现,不要额外设置):
    		1xx: 基本信息
    		2xx: 成功 - 200基本;201新增成功
    		3xx: 重定向
    		4xx: 客户端错误 - 400错误请求;403请求无权限;404请求资源不存在
    		5xx: 服务端错误 - 500服务器错误
    	
    	8) 数据状态码(一般都是前后台约定规则):
    		0: 成功
    		1: 失败 - 1xx: 具体失败信息(要在接口文档中明确写出)
    		2: 无数据 - 2xx: 具体无数据信息(要在接口文档中明确写出)
    	
    	9) 数据状态信息(一般不仅仅是对数据状态码的解释,更多的是对结果的描述,给前台开发者阅读的)
    	
    	10) 数据结果(常量,数组,字典),如果有子资源(图片,音频,视频),返回资源的url链接
    		{
        		"status": 0,
        		"msg": 'ok',
        		"results": [{
        			"name": "西游记",
        			"img": 	"https://api.baidu.com/media/book/xyj.png"
        		}]
    		}
    """
    
  • 相关阅读:
    测试思想-流程规范 关于预发布环境的一些看法
    Jenkins 开启用户注册机制及用户权限设置
    Jenkins 利用Dashboard View插件管理任务视图
    Loadrunner 脚本开发-从文件读取数据并参数化
    SVN SVN合并(Merge)与拉取分支(Branch/tag)操作简介
    测试思想-流程规范 SVN代码管理与版本控制
    Python 关于Python函数参数传递方式的一点探索
    接口自动化 基于python+Testlink+Jenkins实现的接口自动化测试框架[V2.0改进版]
    Python 解决Python安装包时提示Unable to find vcvarsall.bat的问题
    lintcode :链表插入排序
  • 原文地址:https://www.cnblogs.com/2222bai/p/12087861.html
Copyright © 2011-2022 走看看