drf 01——web开发模式、restful规范、drf

WEB开发模式


api接口

​ 前后端信息交互的媒介

​ 前端(pc,小程序,app)------>后端路由------>视图函数------>返回json格式数据 这个东西被称为接口

​ 写接口要有规范 即restful规范

接口测试工具

​ --postman

​ postman 就是一个替代浏览器,发送http请求的工具

​ 因为用浏览器不能发送post请求,只能用代码写ajax发请求

​ 通过postman可以发送任意请求

form-data	  上传文件
urlencoded	   form、ajax表单默认	
json		  只能ajax,contentType:application/json		
django中 使用form-data或者urlencoded编码	提交的数据从POST中取

json格式编码 只能从request.body内取 	取出的为二进制字符串	 还需json.loads()	

restful规范

  REST全称是Representational State Transfer 表征性状态转移
    RESTful是一种定义Web API接口的设计风格,尤其适用于前后端分离的应用模式中
      10条规范
1. 使用https数据交互
	http+tsl/ssl=https		比http更安全 交互是加密传输
    交互用json
2. 接口地址中带api标识
	https://api.baidu.com/books   域名中
	https://www.baidu.com/api     地址中
3. 接口地址中表示版本标识
	-https://api.baidu.com/v1
4. 数据即是资源,均使用名词,不要出现动词
    -删除图书接口
      -好的:https://api.baidu.com/v1/books
      -不好的:https://api.baidu.com/v1/delete-books	
    -新增图书:https://api.baidu.com/v1/books
5. 资源操作由请求方式决定
    -新增图书:https://api.baidu.com/v1/books    post
    -删除图书:https://api.baidu.com/v1/books    delete
    -修改图书:https://api.baidu.com/v1/books    put
    -获取图书:https://api.baidu.com/v1/books    get
6. 地址中带搜索条件
    -https://api.example.com/v1/zoos?animal_type_id=1:指定筛选条件
    -https://api.baidu.com/v1/books?name=红楼梦
7. 响应状态码
  -http的响应状态码
    	-1xx   请求正在处理
      	-2xx   成功  200 请求成功    201 创建成功
        -3xx   重定向  301 和 302 ---》问301和302的区别?一个是临时重定向一个是永久重定向
        -4xx   客户端错误 403 和 404  403:没有权限   404:地址不存在
        -5xx   服务端错误 
  -响应中带状态码
      	{code:100}
8. 响应中带错误信息
  	{code:999,msg:登陆失败}
9. 针对不同操作,服务器向用户返回的结果应该符合以下规范
      GET /collection:返回资源对象的列表(数组) 
    		-[{name:红楼梦,price:12},{name:西游记,price:12}]
      GET /collection/resource:返回单个资源对象
      		-{name:西游记,price:12}
      POST /collection:返回新生成的资源对象
      		-{name:西厢记,price:12}
      PUT /collection/resource:返回完整的资源对象
      		-{name:西游记,price:12}
      PATCH /collection/resource:返回完整的资源对象
      		-{name:西游记,price:12}
      DELETE /collection/resource:返回一个空文档
      		-
10. 响应中带链接地址  		

drf

  djangorestframework 的缩写,它是django的一个app(第三方插件),只能用在django框架上
  # 可以帮助我们快速的写出符合restful规范的接口
posted @ 2022-06-15 19:42  扶我上码  阅读(38)  评论(0)    收藏  举报