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

Status codes

    # 状态码 (Status Codes) *418 我是茶壶 — 任何用茶壶泡咖啡的尝试都会导致错误代码 “418 我是茶壶”。产生的实体主体可能短而粗。—— [RFC 2324](https://www.ietf.org/rfc/rfc2324.txt), 超文本咖啡壶控制协议* 不建议在您的响应中使用裸露 (直接使用数字) 的状态码。REST framework 包含一组命名常量,您可以使用来使代码更加清晰易读。 ```python from rest_framework ...

    阅读全文>>

2018年8月29日 16:00 作者:nancy 分类:[Django] 709

Exceptions

    # 异常 (Exceptions) *异常...允许错误处理在程序结构的中心或者高级的地方被清晰有条理的组织起来。—— Doug Hellmann, [Python 异常处理技术](https://doughellmann.com/blog/2009/06/19/python-exception-handling-techniques/)* ## REST framework 视图中的异常处理 (Exception handling in REST framework views)...

    阅读全文>>

2018年8月28日 22:23 作者:nancy 分类:[Django] 1328

Returning URLs

    # 返回 URL (Returning URLs) *区别 REST 架构风格与其他基于网络风格的中心特征是它强调组件之间的统一接口。—— Roy Fielding,[架构风格与基于网络的软件体系结构设计](https://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm#sec_5_1_5)* 通常,从 Web API 返回绝对 URI (例如 `http://example.com/foobar`) ...

    阅读全文>>

2018年8月24日 15:11 作者:nancy 分类:[Django] 701

Format suffixes

    # 格式后缀 (Format suffixes) *第 6.2.1 节并未说明应始终使用内容协商。—— Roy Fielding, [REST 讨论邮件列表](http://tech.groups.yahoo.com/group/rest-discuss/message/5857)* Web API 的常见模式是在 URL 上使用文件扩展名来为给定的媒体类型提供端点。例如,'http://example.com/api/users.json' 用于提供 JSON 表示。 在 ...

    阅读全文>>

2018年8月24日 14:00 作者:nancy 分类:[Django] 666

Schemas

    # 模式 (Schemas) *机器可读的[模式]描述了通过 API 可以使用哪些资源,它们的 url 是什么,它们是如何表示的,它们支持哪些操作。—— Heroku, [Heroku 平台 API 的 JSON 模式](https://blog.heroku.com/archives/2014/1/8/json_schema_for_heroku_platform_api)* API 模式是一个有用的工具,允许一系列用例,包括生成参考文档,或驱动可与您的 API 交互的动态客户端...

    阅读全文>>

2018年8月23日 22:43 作者:nancy 分类:[Django] 5152

Metadata

    # 元数据 (Metadata) *[`OPTIONS`] 方法允许客户端在无暗示资源动作或发起资源检索的情况下确定与资源相关的选项和/或要求,或服务器的能力。—— [RFC7231, Section 4.3.7.](https://tools.ietf.org/html/rfc7231#section-4.3.7)* REST framework 包括一个用于确定您的 API 应该如何响应 `OPTIONS` 请求可配置的机制。这允许您返回 API 模式或其他资源信息。 目...

    阅读全文>>

2018年8月22日 12:44 作者:nancy 分类:[Django] 761

Content negotiation

    # 内容协商 (Content negotiation) *HTTP 具有用于 “内容协商” 的若干机制的规定—当有多个可用表示时,为给定响应选择最佳表示的过程。—— [RFC 2616](https://www.w3.org/Protocols/rfc2616/rfc2616-sec12.html), Fielding et al.* 内容协商是基于客户端或服务器首选项选择多个可能表示之一以返回到客户端的过程。 ## 确定接受的渲染器 (Determining the ac...

    阅读全文>>

2018年8月21日 16:02 作者:nancy 分类:[Django] 619

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] 866

Pagination

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

    阅读全文>>

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

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] 1624