2011-12-08 134 views
32

我們正在尋找我們的Django項目一般的RESTful API的解決方案。我們首先會在網站上使用API​​進行Ajax調用,然後再使用API​​調用移動應用程序,外部應用程序和類似的東西。Django的REST的API - Django的活塞與Django的tastypie

我發現了兩個模塊,其似乎被廣泛使用。 django-pistondjango-tastypie

從我讀到的內容來看,活塞似乎更老了,因此更成熟但可能有點過時?!雖然tastypie是相對較新,並很好地記錄。

什麼會去與最好的事情? django的活塞Django的tastypie? 對我們很重要(按優先順序排列):持續維護來源,文檔,穩定性和易用性。

EDIT(2013 7月16日):

現在過了一年之後,我們有一個明顯的贏家。起初,我們與tastypie一起去了。我們有點喜歡。但是經過半年左右的時間,我們轉向了當時即將推出的django-rest-framework,永不回頭。

我們最喜歡它:

  • 尼斯文檔

  • 活躍社區

  • 簡潔的設計(建立在Django的基於類的意見)

  • 可瀏覽的API開發和調試

我們依靠大量的API支持,所以(在未來)是我們主要關注的問題之一。我們遇到了維護人員 - 湯姆克里斯蒂(Tom Christie)(在線和離線),他似乎非常致力於該項目。所以我們覺得使用django-rest-framework非常舒服。

回答

28

一個很好的資源對它們進行比較是http://www.djangopackages.com/grids/g/api/

Django的tastypie肯定是救選擇現在。

就個人而言,如果您使用django 1.3,我會主張看看django-rest-framework,因爲它使用了新的基於類的視圖。 djangopackages.com的比較頁面顯示它有良好的參與和活動。哇,它肯定有API的nice browsable interface

+2

我不得不將此留作評論,因爲由於某種原因,在正確的位置更新*點的鏈接*被拒絕,因爲審稿人的「此編輯太小」。文檔:http://django-rest-framework.org/可瀏覽的API示例:http://restframework.herokuapp。com/ –

+0

感謝您的更新鏈接;我修復了它們。 –

+0

+1:這個比較頁非常好。在我看來,django-rest-framework絕對是正確的選擇 - 它迄今爲止在github上的活動最多(因此它仍然被主動維護),而且它是唯一被標記爲可用於生產的產品。 – ArtOfWarfare

24

我有這樣的經驗,但我在這個相信Pydanny:

Django的活塞已經勉強支撐了近兩年。這是一個永恆的 ,並且解決多個問題的分叉數量是引起報警的一個 。正因爲如此,在這個時候,我推薦django-tastypie。它是由最新的,具有很好的 文檔,支持OAUTH,並在Django的 包thunderdome拿下第二名(它得到了幾乎3倍儘可能多的積分!)。另一個工具 要考慮的是Django Rest Framework,它不如 django-tastypie但缺少OAUTH支持。

在Django的活塞前,約書亞·金斯伯格已接管繮繩 ,我們希望能再見到一些運動。在這種情況下,我將 能夠刪除博客文章的這一部分。

來自Pydanny的blog

+3

Pydanny的博客更新:http://pydanny.com/choosing-an-api-framework-for-django.html。總結:django-piston已經死了,tastypie萬歲和django-rest-framework。 –

18

用django活塞,tastypie和django webmachine實現了API的Django tastypie巖!話雖如此,我認爲當你的API與你的模型接近時,tastypie是非常好的,但當你想要移出框時,做一些事情會更復雜一些。有一些解決方法,一些issues,其他人你必須做更多的彎曲比建設。它可能仍會覆蓋90%的django用例。

Afaik Webmachine是在流行的erlang webmachine之後建模的,但近來一直非常活躍。因此,活塞正在進行一些活動,而且味道很好,這有很大的動力和活力。活塞更靈活一點,但tastypie的速度非常快,在我看來,它有一個非常簡單的API。

我的建議是在tastypie中快速實現API的原型,看看它是否涵蓋了你想要做的事情。

5

Django REST framework 2.0是anounced in Oct 2012,現在支持OAuth開箱即用。我真的很喜歡Web browseable API,這在開發你的API時非常有用,但是當有人實現你的API時也是如此。這與使用Django管理站點來檢查模型的結構和數據,然後再用於您的API相當。另外文件非常好。

從他們的網站:

Django的REST框架是一個強大而靈活的工具,可以很容易 來構建Web的API。

您可能需要使用REST框架的一些原因:

  • 在Web瀏覽的API是你的開發人員一個巨大的可用性勝利。
  • 開箱即用的身份驗證策略,包括OAuth1a和OAuth2。
  • 支持ORM和非ORM數據源的序列化。
  • 可自定義的所有方式 - 只要使用常規的基於功能的視圖,如果你不需要更強大的功能。
  • 廣泛的文檔和良好的社區支持。

檢查了他們的Quickstart指南來了解它是如何工作的快速的想法。