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 框架的一些配置 ---------------------