DjangoRestFramework,解释器组件, Postman,

一 . RESTful

1. RESTful 是目前最流行的 API 设计规范,用于 Web 数据接口的设计。
2. REST与技术无关,代表的是一种软件架构风格,REST是Representational State Transfer的简称,中文翻译为“表征状态转移”
3. REST从资源的角度类审视整个网络,它将分布在网络中某个节点的资源通过URL进行标识,客户端应用通过URL来获取资源的表征,获得这些表征致使这些应用转变状态

  HTTP动词

客户端用到的手段,只能是HTTP协议。
具体来说,就是HTTP协议里面,四个表示操作方式的动词:GET、POST、PUT、DELETE。它们分别对应四种基本操作:
GET用来获取资源,
POST用来新建资源(也可以用于更新资源),
PUT用来更新资源,
DELETE用来删除资源。

  RESTful架构的一些误区

    误区一:

最常见的一种设计错误,就是写路径的时候包含动词。因为"资源"表示一种实体,所以应该是名词,动词应该放在HTTP协议中。

举例来说,某个路径是/posts/show/1,其中show是动词,这个URI就设计错了,正确的写法应该是/posts/1,然后用GET方法表示show。

    误区二:

在URL中不应该加入版本号, 如:
    http://www.example.com/app/1.0/foo    
    http://www.example.com/app/2.0/foo    # 这样不应该
因为不同的版本,可以理解成同一种资源的不同表现形式,所以应该采用同一个URL。版本号可以在HTTP请求头信息的Accept字段中进行区分:
    Accept: vnd.example-com.foo+json; version=1.0
    Accept: vnd.example-com.foo+json; version=2.0

二 . DjangoRestFramework(简称DRF)

  drf是django发展来的一个符合restful接口规范的一个app

  

安装: pip install djangorestframework
django不能直接直接用request.post拿到前端发过来的json数据,但是用到djangorestframework就可以啦,这时拿数据要用request.data

   我们在用restframework的时候,写视图函数的时候用的是CBV

from django.shortcuts import render, HttpResponse
from rest_framework.views import APIView
from app01 import models
from rest_framework.parsers import JSONParser

class BookHandle(APIView):
    parser_classes = [JSONParser, ]  # content-type限制为json,如果不限制,支持所有的parser_classes解析器

    def post(self, request):
        # print('这个是django中获取数据的方法', request.POST)  # 不能接受json格式的数据
        print(type(request))  # 在你想找request具体是哪个类实例化来的
        # rest_framework.request.Request  打印结果是这样,直接就 from rest_framework.request import Request
        print('这是rest_framework中获取数据的方法', request.data)  # 能接受json格式, 在request.data调用解析器
        return HttpResponse('OK')

三 . 解释器组件

解析器就是能把content-type中类型解析出来, 比如django自带的解析器能解urlencode和mutipart/form-data类型的数据,然后将数据放到request.POST里面.
而DRF通过自己的解析器,帮我们给request里面封装了一个request.data属性,获取请求体里面的数据,然后解析,
  并且这个解析器基本上能够解析所有的数据类型,包括django不能自动解析的json数据类型.

四 . Postman的使用

Postman是一个模拟发送请求并获得响应结果的工具,
不用这个工具的时候,我们写web项目,调试接口返回数据的时候,是不是都要启动项目,通过浏览器访问,然后查看数据,
有了这个工具我们就可以不用启动浏览器来,通过这个工具就能进行调试

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

  使用Postman:

  

 

posted @ 2019-05-01 18:02  一个很善良的抱爱  阅读(254)  评论(0编辑  收藏  举报