Django Rest FrameWork
、Requests 请求
客服端发送给服务器的请求
、Responses 响应
rest框架支持响应不同格式的内容
、Views 视图
base基础类视图
将传入的请求调度到适当的处理程序方法,可以在控制API策略的各个方面的类上设置许多属性
、Generic views 一般视图
Django的视图...被开发为常见使用模式的快捷方式...他们采取在视图开发中发现的一些常见习语和模式,并将其抽象出来,以便您可以快速编写数据的常见视图,而无需重复。基于类视图的主要优点之一是它们允许您组合可重用行为的方式。REST框架通过提供许多提供常用模式的预构建视图来利用这一点。
、Viewsets 视图集
ViewSet类只是一种类型的基于类的视图,即不提供任何方法的处理程序,例如.get()或.post(),而是提供操作,如.list()和.create()。
、Routers 路由器
REST框架增加的一种对Django自动URL路由的支持,并为您提供了一种简单,快速和一致的方式将视图逻辑连接到一组URL。
、Parsers 解析器
REST框架包括一些内置的Parser类,允许您接受各种媒体类型的请求。还支持定义自己的自定义解析器,这使您可以灵活地设计API接受的媒体类型。
、Renderers 渲染器
REST框架包括许多内置的Renderer类,它们允许您使用各种媒体类型返回响应。还支持定义您自己的自定义渲染器,这使您可以灵活地设计自己的媒体类型。
、Serializers 序列器/串行器
允许诸如查询集和模型实例复杂的数据转换为可随后被容易地呈现到机Python数据类型JSON,XML或其他内容类型。序列化器还提供反序列化,允许解析的数据在首次验证传入的数据后被转换成复杂类型。
、Serializers fields 序列器/串行器字段
Form类中的每个字段不仅用于验证数据,还负责“清理”它 - 将其规范化为一致的格式。
序列化器字段处理原始值和内部数据类型之间的转换。它们还处理验证输入值,以及检索和设置其父对象的值。注意:序列化程序字段已声明fields.py,但按照惯例,您应该使用from rest_framework import serializers引用它们并引用字段serializers.<FieldName>。
、Serializers序列器/串行器关系
关系字段用于表示模型关系。它们可以应用到ForeignKey,ManyToManyField和OneToOneField关系,以及扭转的关系,以及自定义关系等GenericForeignKey。
、Validators 验证器
大多数时候,您正在处理REST框架中的验证,您只需依靠默认字段验证,或在序列化器或字段类上编写显式验证方法。
但是,有时候,您需要将验证逻辑放置在可重用的组件中,以便在整个代码库中轻松重用。这可以通过使用验证器函数和验证器类来实现。
、Authentication 认证
认证是将传入请求与一组标识凭证相关联的机制,例如请求来自的用户或与其签名的令牌。然后,权限和限制策略可以使用这些凭据来确定是否应允许该请求。
REST框架提供了许多开箱即用的身份验证方案,并且还允许您实现自定义方案。
验证始终在视图的最开始运行,在执行权限和限制检查之前,以及在允许继续执行任何其他代码之前。
、Permissions 权限
身份验证或身份证明本身通常不足以获取信息或代码。为此,请求访问的实体必须具有授权。连同认证和限制,权限决定是否应该授予请求或拒绝访问。
在允许继续执行任何其他代码之前,权限检查始终在视图的开始处运行。权限检查通常将使用request.user和request.auth属性中的身份验证信息来确定是否应允许传入请求。
权限用于授予或拒绝将不同类别的用户访问到API的不同部分。
最简单的权限是允许访问任何经过身份验证的用户,并拒绝访问任何未经身份验证的用户。这对应IsAuthenticated于REST框架中的类。
稍微严格的权限风格将是允许对经过身份验证的用户的完全访问,但允许对未经身份验证的用户的只读访问。这对应IsAuthenticatedOrReadOnly于REST框架中的类。
、Throttling 节流控制阀门
限制类似于权限,因为它确定是否应授权请求。Throttles表示临时状态,用于控制客户端可以对API做出的请求的速率。
、Filtering 过滤
REST框架的通用列表视图的默认行为是返回模型管理器的整个查询集。通常,您将希望您的API限制查询器返回的项目。
过滤子视图的任何视图的查询的最简单的方法GenericAPIView是覆盖该.get_queryset()方法。
覆盖此方法允许您以多种不同的方式自定义视图返回的查询集。
、Pagination 分页
Django提供了几个类,可以帮助您管理分页数据,也就是说,分割成几页的数据与“上一个/下一个”链接。REST框架包括支持可定制的分页样式。这允许您修改将多大的结果集拆分为单独的数据页面。
、Versionning 版本
API版本控制允许您更改不同客户端之间的行为。REST框架提供了许多不同的版本控制方案。
版本控制由传入的客户端请求确定,可以基于请求URL,也可以基于请求头。也就是当你的API需要更改时,又不能覆盖之前的API,只能用不同版本来区别新旧API让用户有选择的升级。
、Content negotiation 内容协商
内容协商是根据客户端或服务器首选项选择多个可能的表示之一以返回给客户端的过程。REST框架使用简单的内容协商风格来确定哪些媒体类型应该返回给客户端,基于可用的渲染器,每个渲染器的优先级以及客户Accept:头。所使用的风格部分是客户驱动的,部分是服务器驱动的。内容协商的作用简单说就是客户端可以通过Content-type头告诉服务器它的数据是什么媒体类型,它可以接收什么数据类型。
、Metadata 元数据
REST框架包括一个可配置的机制,用于确定API如何响应OPTIONS请求。这允许您返回API模式或其他资源信息。,模型元数据是“任何不是字段的数据”,比如排序选项(ordering),数据库表名(db_table)或者人类可读的单复数名称(verbose_name 和verbose_name_plural)。在模型中添加class Meta是完全可选的,所有选项都不是必须的。
、Schemas 架构
机器可读[schema]描述了通过API可以获得哪些资源,它们的URL是什么,它们如何被表示以及它们支持哪些操作。
、Format suffixes 格式化后缀
Web API的一个常见模式是使用URL上的文件扩展名为给定的媒体类型提供端点我们的响应,不再硬性绑定在,某一种返回格式上,利用这点优势,我们可以为API端,添加格式的后缀。使用格式后缀,可以定制我们的URLs,使它明确的指向指定的格式,这意味着,我们的API可以处理一些URLs,类似这样的格式 http://example.com/api/items/4/.json 。
、Returning URLS 返回URLS
将REST架构风格与其他基于网络的风格区分开来的核心功能是强调组件之间的统一接口。通常来说,最好从Web API返回绝对URI,比如http://example.com/foobar返回相对URI /foobar。
这样做的好处是:
它更明确
它为您的API客户端减少了工作。
当在不具有本机URI类型的表示形式(如JSON)中找到字符串的含义时,没有歧义。
它可以使用超链接进行标记HTML表示等操作变得容易。
、Exceptions 例外异常处理
REST框架的视图处理各种异常,并处理返回适当的错误响应。在每种情况下,REST框架将返回具有适当状态代码和内容类型的响应。响应的主体将包括关于错误性质的任何其他细节。
、Status codes 状态码
status模块中包含的完整的HTTP状态代码。
该模块还包括一组帮助函数,用于测试状态代码是否在给定范围内。
、Testing 测试
REST框架包括一些扩展Django现有测试框架的帮助类
、Settings 设置
Django Rest 框架的一些配置
---------------------