首页 > 技术文章 > Rest Framework

guotianbao 2018-03-12 10:48 原文

一、介绍 RESTful

  什么是 RESTful? REST -- REpresentational State Transfer 翻译过来叫做:"表现层状态转移" ,也没有个上下文,鬼晓得什么叫做"表层状态转移" ! OK,换个说法:URL定位资源,用HTTP动词(GET,POST,DELETE,DETC)描述操作,程序员对这句话应该就可以了解个大概了,说的比较精辟通俗。

  来具体解释一下上面的那句话,REST和技术没有多大关系,它是一种软件架构的风格,它将分布在网络中某个节点的资源通过URL进行标识,客户端应用通过URL来获取资源的表征,获得这些表征致使这些应用转变状态

   REST描述的是在网络中client和server的一种交互形式;REST本身不实用,实用的是如何设计 RESTful API(REST风格的网络接口)

二、RESTful API设计指南

  阮一峰大神总结的相当好,放上他的网络日志:传送门

三、Django RESTful API

  武沛齐:传送门

基于Django Rest Framework框架实现
from django.conf.urls import url, include
from web.views.s1_api import TestView
 
urlpatterns = [
    url(r'^test/', TestView.as_view()),
]
url.py
from rest_framework.views import APIView
from rest_framework.response import Response

class TestView(APIView):
    def dispatch(self, request, *args, **kwargs):
        """
        请求到来之后,都要执行dispatch方法,dispatch方法根据请求方式不同触发 get/post/put等方法

        注意:APIView中的dispatch方法有好多好多的功能
        """
        return super().dispatch(request, *args, **kwargs)

    def get(self, request, *args, **kwargs):
        return Response('GET请求,响应内容')

    def post(self, request, *args, **kwargs):
        return Response('POST请求,响应内容')

    def put(self, request, *args, **kwargs):
        return Response('PUT请求,响应内容')
views.py

  Rest framework框架基本流程是请求到来后会执行dispath方法,自动根据请求方法如(GET/POST)自行调用下面的get(self, request, *args, **kwargs)、post(self, request, *args, **kwargs),重要的功能是在APIView的dispatch中触发。
  Django rest_Framework框架提供常用功能:认证、权限、限流,仅需自己写类配置,完成后可全局配置使用。
  要自己实现rest_Framework框架不用Django的话,需要自己写装饰器、中间件等,比较麻烦。Django rest_Framework框架已经把规则写好,只需要写类,只需实现方法,返回值即可。

 

推荐阅读