2011-12-08 86 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指南来了解它是如何工作的快速的想法。