我只是想知道 API 是用 DRF 創建的這一事實是否意味著它真的是一個 Rest Api?或者是否有一些重要的事情需要記住才能使其真正成為 REST?
當我與端點通信時,我在請求中發送 JWT,所以我相信它使它成為無狀態的。休息端點的命名約定可能也很重要。但是還有什么要記住的,所以我可以將我的 Api 稱為 Rest Api?
uj5u.com熱心網友回復:
我參考自https://www.redhat.com/en/topics/api/what-is-a-rest-api:
" 為了使 API 被視為 RESTful,它必須符合以下標準:
- 由客戶端、服務器和資源組成的客戶端-服務器架構,通過 HTTP 管理請求。
- 無狀態客戶端-服務器通信,這意味著在 get 請求之間不存盤客戶端資訊,并且每個請求都是獨立且未連接的。
- 簡化客戶端-服務器互動的可快取資料。
- 組件之間的統一介面,以便以標準形式傳輸資訊。這要求:
- 請求的資源是可識別的,并且與發送給客戶端的表示分開。
- 客戶端可以通過它們接收到的表示來操作資源,因為表示包含足夠的資訊來這樣做。回傳給客戶端的自描述訊息有足夠的資訊來描述客戶端應該如何處理它。
- 超文本/超媒體可用,這意味著在訪問資源后,客戶端應該能夠使用超鏈接來查找他們可以采取的所有其他當前可用操作。
- 組織每種型別的服務器(負責安全、負載平衡等)的分層系統涉及將請求的資訊檢索到客戶端不可見的層次結構中。
- 按需代碼(可選):在請求時從服務器向客戶端發送可執行代碼的能力,擴展客戶端功能。”
Roy Fielding 在https://roy.gbiv.com/untangled/2008/rest-apis-must-be-hypertext-driven有一個非常詳細的答案(從 2008 年開始)關于什么不應該被稱為 REST API 。
對于您的答案,最后也是最重要的事情是 DRF 自己對您的問題的回答,您可以在此處找到:
https://www.django-rest-framework.org/topics/rest-hypermedia-hateoas/#building-hypermedia-apis-with-rest-framework
他們明確指出 DRF 是一個 web api 工具包,它將幫助指導您構建一個超媒體 API,但不強制執行它。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/401603.html
上一篇:帶有影像上傳的DjangoRestFramework補丁請求
下一篇:我有一個現有的DjangoWebapp,我如何制作一個restAPI來將webapp與一個android應用程式集成?
