我们正在为Django项目寻找一般的RESTful API解决方案.我们首先使用API来进行网站上的Ajax调用,然后再使用移动应用程序,外部应用程序等等.
我发现了两个似乎被广泛使用的模块.django-piston和django-tastypie
从我读到的,活塞似乎更老,因此更成熟但可能有点过时?!虽然tastypie相对较新并且记录良好.
什么是最好的选择?django-piston或django-tastypie?对我们来说很重要(按优先级排序):持续维护源,文档,稳定性和易用性.
编辑(2013年7月16日):
一年多以后,我们有一个明显的赢家.起初我们去了tastypie.我们有点喜欢.但经过半年左右的时间,我们转向了即将到来的django-rest-framework并且从未回头.
我们最喜欢的是:
很好的文档
积极的社区
干净的设计(基于django基于类的视图)
用于开发和调试的可浏览API
我们非常依赖API,因此支持(将来)是我们主要关注的问题之一.我们遇到了维护者 - 汤姆克里斯蒂 - (在线和离线),他似乎非常致力于这个项目.所以我们觉得使用django-rest-framework非常舒服.
比较它们的一个很好的资源是http://www.djangopackages.com/grids/g/api/
Django-tastypie肯定是现在的保存选择.
就个人而言,如果你使用django 1.3,我会主张看一下django-rest-framework,因为它使用了基于类的新视图.djangopackages.com的比较页面显示它具有良好的参与和活动.而且,哇,它肯定有一个很好的可浏览的API接口.
我对此没有经验,但我相信Pydanny:
django-piston近两年来几乎没有得到支持.这是永恒的,解决多个问题的叉子数量是引起恐慌的原因.因此,在这个时候,我推荐django-tastypie.它是最新的,有非常好的文档,支持OAUTH,并在Django Packages thunderdome中获得第二名(它获得了近3倍的积分!).另一个需要考虑的工具是Django Rest Framework,它与django-tastypie一样好,但缺乏OAUTH支持.
在django-piston前方,约书亚金斯伯格接管了缰绳,我们希望能再次看到一些动作.在这种情况下,我将能够删除博客文章的这一部分.
来自Pydanny的博客.
用django Piston,tastypie和django webmachine Django tastypie摇滚实现了API !话虽如此,我认为虽然当你的API模型靠近你的模型时,tastypie非常好,但是一旦你想要开箱即用,做一些事情会有点复杂.对于某些问题有一些解决方法,而其他问题则需要做更多的弯曲而不是构建.它可能仍然涵盖了50%的django用例.
Afaik Webmachine仿照流行的erlang webmachine,但最近并不是非常活跃.因此,活塞和活动会产生一些活动和活动.活塞有点灵活,但是tastypie的移动速度非常快,而且我认为它有一个非常简单的API.
我的建议是在tastypie中快速实现API的原型,看看它是否涵盖了你想要做的事情.
Django REST框架 2.0于2012年10月发布,现在支持OAuth开箱即用.我真正喜欢的是Web可浏览的API,它在开发API时非常有用,但在有人实现您的API时也是如此.它与使用Django管理站点检查模型的结构和数据,但随后是您的API相当.文档也非常好.
从他们的网站:
Django REST框架是一个功能强大且灵活的工具包,可以轻松构建Web API.
您可能希望使用REST框架的一些原因:
Web可浏览API为您的开发人员带来了巨大的可用性.
验证策略包括开箱即用的OAuth1a和OAuth2.
支持ORM和非ORM数据源的序列化.
可自定义 - 如果您不需要更强大的功能,只需使用常规的基于功能的视图.
丰富的文档和良好的社区支持.
查看他们的快速入门指南,快速了解它的工作原理.