DRF 架构之美

  • 简单易用,既然可以使用自动的 CRUD API,也可以自定义实现API
  • 提供可浏览的 HTML API; 一套实现同时提供 HTML/JSON/XML 展现
  • 灵活的用户认证,支持 Token/OAuth/OAuth2/JWT 等认证方式
  • 提供流量控制,结果过滤筛选,分页,API 版本控制能力
  • 灵活的权限控制:登陆用户,管理员,Django内置权限,只读权限,匿名用户

image.png
REST 是一个基于 HTTP 资源 如 GET / HEAD / POST / PUT / DELETE 的架构模型。
Django Rest Framework

Restful 的5个基本原则

  • 给每个实体一个唯一标识
  • 把实体链接到一期
  • 使用标准的方法
  • 支持多种表达方式/展现方式 (CRF 可以渲染出 JSON, LaTEx, CSV,XML 不同格式)
  • 无状态

Rest 不是 JSON 协议的 API;

Restful API 的三个概念

Actions:定义的操作,发送到 API 的动作 GET/POST/PUT/PATCH/DELETE
Resources:资源,对应到数据,数据集,序列化的 model
Representations:

Restful API 把 CRUD 增删改查操作映射到 HTTP URL 的策略

GET /users # 返回用户列表
GET /users/ # 返回一个指定用户
POST /users # 创建一个新用户
PUT /users/ # 修改一个自定用户
PATCH /users/ # 部分更新一个用户的信息
DELETE /users/ # 删除一个指定用户

为了一致性和便于阅读,URL 路径名应该是复数的。Restful API 的这些操作可以自动生成。