不为成仙,只为在这红尘中等你回来。

Versioning

    # 版本控制 (Versioning) *对接口进行版本控制只是一种杀死已部署客户端的 “礼貌” 方式。—— [Roy Fielding](https://www.slideshare.net/evolve_conference/201308-fielding-evolve/31)* API 版本控制允许您更改不同客户端之间的行为。REST framework 提供了许多不同的版本控制方案。 版本控制由传入的客户端请求决定,并且可以基于请求 URL,也可以基于请求头。 ...

    阅读全文>>

2018年8月20日 17:19 作者:nancy 分类:[Django] 948

Pagination

    # 分页 (Pagination) *Django 提供了一些类来帮助您管理分页数据,也就是说,这些数据通过 “前/下” 链接被分割到多个页面。—— [Django 文档](https://docs.djangoproject.com/en/stable/topics/pagination/)* REST framework 包含对自定义分页样式的支持。这允许您修改如何将大的结果集分成单个数据页面。 分页 API 支持: - 分页链接是作为响应内容的一部分提供的。 -...

    阅读全文>>

2018年8月17日 23:05 作者:nancy 分类:[Django] 1423

Filtering

    # 过滤 (Filtering) *Manager 提供的根 QuerySet 描述了数据库表中的所有对象。但是,通常您只需要选择完整对象集的一个子集。—— [Django 文档](https://docs.djangoproject.com/en/stable/topics/db/queries/#retrieving-specific-objects-with-filters)* REST framework 的通用列表视图的默认行为是返回模型管理器的整个查询集。通常您会希望 ...

    阅读全文>>

2018年8月15日 22:36 作者:nancy 分类:[Django] 1736

Permissions

    # 权限 (Permissions) *认证或识别本身通常不足以获得对信息或代码的访问。为此,请求访问的实体必须具有授权。—— Apple 开发人员文档* 与[身份验证](http://www.django-rest-framework.org/api-guide/authentication/)和[限流](http://www.django-rest-framework.org/api-guide/throttling/)一起,权限确定是否应该授予或拒绝访问请求。 在允许任...

    阅读全文>>

2018年8月14日 23:25 作者:nancy 分类:[Django] 1588

Throttling

    # 限流 (Throttling) 限流类似于[权限](http://www.django-rest-framework.org/api-guide/permissions/),因为它确定是否应该授权请求。限流阀表示临时状态,并用来控制客户端对 API 的请求速率。 与权限一样,可能会使用多种限流方式。您的 API 可能对未经身份验证的请求进行限流,对经过身份验证的请求限流较少。 您可能想要使用多种限流的另一种方案是,如果您需要对 API 的不同部分施加不同的约束,由于某些服...

    阅读全文>>

2018年8月13日 22:06 作者:nancy 分类:[Django] 1006

Validators

    # 验证器 (Validators) *验证器对于在不同类型的字段之间重用验证逻辑非常有用。—— Django 文档* 大多数情况下,您在 REST framework 中处理验证时,只需依赖默认的字段验证,或者在序列化器或字段类上编写显式的验证方法。 但是,有时您需要将验证逻辑放入可重用的组件中,以便可以在整个代码库中轻松地重用它。这可以通过使用验证器函数和验证器类来实现。 # REST framework 中的验证 (Validation in REST frame...

    阅读全文>>

2018年8月9日 17:54 作者:nancy 分类:[Django] 1416

Authentication

    # 认证 (Authentication) *身份验证需要可插拔。—— Jacob Kaplan-Moss, ["REST worst practices"](https://jacobian.org/writing/rest-worst-practices/)* 身份验证是将传入请求与一组标识凭据 (例如请求来自的用户或其签名的令牌) 相关联的机制。然后,[权限](http://www.django-rest-framework.org/api-guide/permissions...

    阅读全文>>

2018年8月6日 23:33 作者:nancy 分类:[Django] 2025

Serializer relations

    # 序列化器关系 (Serializer relations) *糟糕的程序员担心代码。好的程序员担心数据结构和它们的关系。—— [Linus Torvalds](https://lwn.net/Articles/193245/)* 关系字段用于表示模型关系。它们可以应用于 `ForeignKey`,`ManyToManyField` 和 `OneToOneField` 关系,以及反向关系和自定义关系 (例如:`GenericForeignKey`)。 *** **注意...

    阅读全文>>

2018年8月2日 17:12 作者:nancy 分类:[Django] 1618

Serializer fields

    # 序列化器字段 (Serializer fields) *Form 类中的每个字段不仅负责验证数据,而且还负责“清理”它 — 将其规范化为一致的格式。—— Django 文档* 序列化器字段处理原始值和内部数据类型之间的转换。它们还处理验证输入值,以及从父对象检索和设置值。 *** **注意**: 序列化器字段都声明在 `fields.py` 中,但按照惯例,应该使用 `from rest_framework import serializers` 导入它们,并引用字...

    阅读全文>>

2018年7月31日 18:07 作者:nancy 分类:[Django] 2121

Serializers

    # 序列化器 (Serializers) *扩展序列化器的有用性是我们想要解决的问题。然而,这不是一个微不足道的问题,它将需要一些严肃的设计工作。—— Russell Keith-Magee, Django 用户组* 序列化器允许将复杂数据 (如查询集和模型实例) 转换为可以轻松渲染成 `JSON`,`XML` 或其他内容类型的原生 Python 数据类型。序列化器还提供反序列化,在验证传入的数据之后允许解析数据转换回复杂类型。 REST framework 中的序列化器与 ...

    阅读全文>>

2018年7月25日 23:03 作者:nancy 分类:[Django] 4055