rest framework 之前

在开始rest framework之前,我们先来了解一下什么是restful

rest 是一种软件架构风格,Representational state Transfer

    它从资源的角度去看整个网络,通过对网络中的每个节点进行URL标识,客户端应用通过URL来获取资源的表征

    其本质是将一切数据都视为资源,这是有别于其他架构的最大区别,这个理念被称为:面向资源架构(ROA)

下面来看看restful api的设计规范(10条)

1 api与用户的通信协议使用https协议

2 域名

    https://api.example.com     将api部署在域名之前,(需解决跨域问题),子域名的方式

    https://example.com/api     写在域名之后作为路径使用,简洁,url的方式

3 版本

    https://api.example.com/v1/   在域名后面加上版本名称

    请求头                                   将需要的版本名称加入请求头里面

4 路径 ,可以将网络上的任何东西作为资源,使用其名词(可复数)

   https://api.example.com/v1/books

    https://api.example.com/v1/employees

5 method 方法

GET: 从服务器上获取资源(一个或者多个)
POST:新建一个资源
PUT:更新资源(客户端提供改变后的完整资源)
PATCH:更新资源的部分功能(例如改变其属性)
DELETE:删除资源

 6 过滤,通过在url上传参的形式传递搜索条件

https://api.example.com/v1/books?page=2&per_page=50
上面传递的参数也可以是limit,offset,order等

7 状态码

状态码        说明                        其他
200           ok                         GET      服务器成功返回用户请求的数据
301       moved permanently          被请求的资源已永久移动到新位置
302       Move Temporarily            请求的资源临时从不同的 URI响应请求
400       Bad Request                    1语义有误,当前请求无法被服务器理解 2 请求参数有误。
403    Forbidden             服务器已经理解请求,但是拒绝执行它
404    Not Found             请求失败,请求所希望得到的资源未被在服务器上发现
405    Method Not Allowed        请求行中指定的请求方法不能被用于请求相应的资源
500    Internal Server Error       一般来说,这个问题都会在服务器端的源代码出现错误时出现。
502    Bad Gateway            作为网关或者代理工作的服务器尝试执行请求时,从上游服务器接收到无效的响应。
503    Service Unavailable        由于临时的服务器维护或者过载,服务器当前无法处理请求。这个状况是临时的,并且将在一段时间以后恢复

 8 错误处理,报错时返回信息,以error作为key

{error:"XXXXXXXXXXXXXXXXXXXXXXXXX"}

9 返回结果,根据不同的操作向用户返回不同类型的结果

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

 10 Hypermedia API,返回结果提供可以连向其他api的方法,让用户直接使用

[
  {
    id:1,
    name:'物理',
    url:'https://www.hehe.com/1',
  },
  {
    id:2,
    name:'化学',
    url:'https://www.hehe.com/2',
  }
]

 其他:安装

pip install diangorestframework
原文地址:https://www.cnblogs.com/mmyy-blog/p/10827471.html