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

Settings

    # 设置 (Settings) *命名空间是一个很棒的主意 - 让我们做更多的事情吧!—— [The Zen of Python](https://www.python.org/dev/peps/pep-0020/)* REST framework 的配置全部在单个 Django 设置中命名的,名为 `REST_FRAMEWORK`。 例如,您的项目的 `settings.py` 文件可能包含以下内容: ```python REST_FRAMEWORK = { ...

    阅读全文>>

2018年9月4日 18:38 作者:nancy 分类:[Django] 1828

Testing

    # 测试 (Testing) *天有不测风云,码有祸福旦夕 (指明了测试在编程开发中的重要性)。—— [Jacob Kaplan-Moss](https://jacobian.org/writing/django-apps-with-buildout/#s-create-a-test-wrapper)* REST framework 包含一些扩展 Django 现有测试框架的辅助类,并改进对 API 请求的支持。 # APIRequestFactory 扩展 [Django...

    阅读全文>>

2018年9月3日 17:41 作者:nancy 分类:[Django] 1959

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

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

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

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

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

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

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

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