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