Django RESTful API - django-piston vs. django-tastypie

时间:2011-12-08 11:48:19

标签: django api django-piston

我们正在为Django项目寻找一般的RESTful API解决方案。我们首先使用API​​来进行网站上的Ajax调用,然后再使用移动应用程序,外部应用程序等等。

我找到了两个似乎被广泛使用的模块。 django-pistondjango-tastypie

从我读到的内容来看,活塞似乎更老了,因此更成熟但可能有点过时了?! 虽然tastypie相对较新且记录良好。

最好的选择是什么? django-piston django-tastypie ? 对我们来说很重要(按优先级排序):持续维护源,文档,稳定性和易用性。

编辑(2013年7月16日):

一年后,我们有一个明显的赢家。起初我们去了tastypie。我们有点喜欢。但经过半年左右的时间,我们转向即将到来的django-rest-framework并且从未回头。

我们最喜欢它:

  • 不错的文档

  • 活跃社区

  • 清洁设计(基于django基于类的视图构建)

  • 用于开发和调试的可浏览API

我们非常依赖API,因此支持(将来)是我们主要关注的问题之一。我们遇到了维护者 - 汤姆克里斯蒂 - (在线和离线),他似乎非常致力于这个项目。所以我们觉得使用django-rest-framework非常舒服。

4 个答案:

答案 0 :(得分:29)

比较它们的好资源是http://www.djangopackages.com/grids/g/api/

Django-tastypie肯定是现在的保存选择。

如果您使用django 1.3,我个人主张查看django-rest-framework,因为它使用了基于新类的视图。 djangopackages.com的比较页面显示它具有良好的参与和活动。而且,哇,它肯定有一个nice browsable interface API。

答案 1 :(得分:24)

我对此没有经验,但我相信Pydanny:

  django-piston近两年来几乎没有得到支持。那是   永恒,解决多个问题的分叉数量是一个   引起警报。因此,在这个时候我在这里   推荐django-tastypie。它是最新的,非常好   文档,支持OAUTH,并在Django中获得第二名   套餐thunderdome(它获得了近3倍的积分!)。另一个工具   要考虑的是Django Rest Framework,这和它一样好   django-tastypie但缺乏OAUTH支持。

     

在django-piston前线,约书亚金斯伯格接管了缰绳   我们希望再看一些动作。在哪种情况下,我会   能够删除博文的这一部分。

来自Pydanny的blog

答案 2 :(得分:18)

用django Piston,tastypie和django webmachine Django tastypie rock实现了API!话虽如此,我认为虽然当你的API模型靠近你的模型时,tastypie非常好,但是一旦你想要开箱即用,做一些事情会有点复杂。某些issues有变通方法,而其他人则需要做更多的弯曲而不是构建。它可能仍然覆盖了90%的django用例。

Afaik Webmachine仿照流行的erlang webmachine,但最近并不是非常活跃。因此,活塞和活动会产生一些活动和活动。活塞有点灵活,但是tastypie的移动速度非常快,而且我认为它有一个非常简单的API。

我的建议是在tastypie中快速实现API的原型,看看它是否涵盖了你想要做的事情。

答案 3 :(得分: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指南,快速了解其工作原理。