簡體   English   中英

用於Django項目/應用程序的RESTful API

[英]RESTful APIs for Django projects/apps

當你想在Django中“恢復”你的Django項目時,你更喜歡什么?

我得出的結論是,有三個選項可以做到:

對我來說這樣做的正確方法是嘗試所有''並選擇最適合我的那個,所以同時我想聽聽你的...

謝謝。

我對django-piston最熟悉,所以我自然會引導你走向那個方向。

然而,快速瀏覽另外兩個,表明django-rest-interface只是將模型公開為資源,並且django-restful-resources是同一個人的一次性嘗試。

活塞,如果我沒記錯的話,是從bitbucket.org自己的網站開發中產生的,並且允許很多靈活性 - 你可以從資源的訪問方法中返回幾乎任何對象,而不僅僅是模型實例,並且它將被正確編碼。 它還內置了對一些不錯的功能的支持,例如表單驗證(如果你能讓它正常工作),並請求限制等等。

使用django 1.3中新的基於類的通用視圖,使用自定義序列化器和反序列化器實現您自己的休息接口將非常容易,只需使用股票代碼復制幾乎完整的活塞實現。 我在500行代碼中創建了一個基於View(1.3)的休息模塊,具有通用的RESTful資源類和子資源,對關聯的自然鍵支持,json和XML序列化等等。 該模塊真的是根據我的應用程序的要求量身定制的

我這樣做是為了克服活塞代碼中的一些限制,例如在處理程序調用.get()之前修改查詢集(例如使用.values(...)),或者不能使用模型的方法在序列化。

如果你按照自己的意願去做,那么在幾天之內你就會擁有一套完整的課程和混合課程,你將完全理解並控制它們。

作為寫“django-restful-resources”的“有些人”,我想澄清它存在的原因。 它不是嘗試將模型公開為資源,而是一種允許將單個URL映射到多個不同處理程序方法的方法,每個HTTP動詞一個。 就這樣。 它可以用於公開模型對象,但它也可以用於將服務公開為資源或您希望通過單個URL和HTTP謂詞進行交互的任何其他內容。 如果您正在尋找功能更全面的解決方案,那么請務必使用Piston。

正如eternicode所提到的, django-piston非常出色。 它成熟,功能齊全,背后有一個很好的社區。 目前似乎缺乏持續的開發,盡管有人談論社區驅動的分支,因此可能會發生變化。

django-tastypie也很值得一看,目前似乎有很多推動力。

我還發布了另一個值得考慮的選項: django-rest-framework 它背后有一些非常好的功能,例如API自動文檔

它使用了基於Django 1.3的類視圖,如saverio所提到的,這意味着您可以直接使用它提供的一些MixIn類,而無需直接使用框架。 (例如, 添加HTTP內容協商以將輸出序列化為多種類型

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM