Django中的RESTful

Posted zxt-cn

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django中的RESTful相关的知识,希望对你有一定的参考价值。

一:谈谈你对restful规范的理解:

  -restful其实就是一种编写接口的设计风格,如果一个架构满足rest的三个原则,那么他就是restful架构,

  1. 每一个URL代表一种资源

  2.通过在请求头中用Accept和Content-type字段指定其表现形式,客户端和服务器之间传递这种表现层。

  3.客户端通过HTTP四个动词,对服务器资源进行操作,实现‘表现层的状态转换’,GET用于获取资源,POST用于新建资源,PUT用于更新资源,DElETE用于删除资源。

二;

        2. 你的restful是怎么学的?
            - 因为之前公司要写这样项目
                - 接口
                - 公司要做前后端分离的项目
                - 公司要做微信小程序的开发

三:设计 方法:

  1.域名:应该尽量将API部署在专用域名之下:

  2.版本:应该将API的版本号放入URL

  3.路径Endpoint:每个网址代表一种资源,只能有名词,不能有动词,名词应该使用复数

  4.对于资源的具体操作类型,由HTTP动词表示。

    GET(SELECT):从服务器取出资源(一项或多项)。

    POST(CREATE):在服务器新建一个资源。

    PUT(UPDATE):在服务器更新资源(客户端提供改变后的完整资源)。

    DELETE(DELETE):从服务器删除资源。

  5.过滤信息:如果记录数量很多,服务器不可能都将它们返回给用户。API应该提供参数,过滤返回结果。

  6.状态码:

  7.错误处理:

  8.返回结果。

针对不同操作,服务器向用户返回的结果应该符合以下规范。

  • GET /collection:返回资源对象的列表(数组)
  • GET /collection/resource:返回单个资源对象
  • POST /collection:返回新生成的资源对象
  • PUT /collection/resource:返回完整的资源对象
  • PATCH /collection/resource:返回完整的资源对象
  • DELETE /collection/resource:返回一个空文档。

  9.超媒体:

  RESTful API最好做到Hypermedia(即返回结果中提供链接,连向其他API方法),使得用户不查文档,也知道下一步应该做什么。

  比如,Github的API就是这种设计,访问api.github.com会得到一个所有可用API的网址列表

以上是关于Django中的RESTful的主要内容,如果未能解决你的问题,请参考以下文章

Django中CBV和Restful API中的APIView源码分析

Django中的RESTful api在Django中使用inbult视图,无需创建2个url

利用Django实现RESTful API

RESTful Android 应用程序中的设计模式

vue项目和django项目交互补充,drf介绍,restful规范

Django编写RESTful API:ViewSets和Routers