Django RESTful API - django-piston 与 django-tastypie
Posted
技术标签:
【中文标题】Django RESTful API - django-piston 与 django-tastypie【英文标题】:Django RESTful API - django-piston vs. django-tastypie 【发布时间】:2012-01-15 20:46:01 【问题描述】:我们正在为我们的 Django 项目寻找通用的 RESTful API 解决方案。我们首先将 API 用于网站上的 Ajax 调用,然后用于移动应用程序、外部应用程序等。
我发现了两个似乎被广泛使用的模块。 django-piston 和 django-tastypie
从我读到的,活塞似乎更老,因此更成熟,但可能有点过时了?! 虽然 sweetpie 相对较新并且有很好的文档记录。
什么是最好的搭配? django-piston 还是 django-tastypie? 对我们来说重要(按优先级排序):源代码、文档、稳定性、易用性的持续维护。
编辑(2013 年 7 月 16 日):
现在一年多之后,我们有了明显的赢家。起初我们和美味的派一起去了。我们有点喜欢。但半年后,我们切换到当时即将推出的django-rest-framework,再也没有回头。
我们最喜欢它的地方:
很好的文档
活跃的社区
简洁的设计(基于 django 的基于类的视图)
用于开发和调试的可浏览 API
我们严重依赖 API,因此支持(未来)是我们的主要关注点之一。我们遇到了维护者 - Tom Christie -(在线和离线),他似乎非常致力于该项目。所以我们觉得使用 django-rest-framework 很舒服。
【问题讨论】:
【参考方案1】:比较它们的好资源是http://www.djangopackages.com/grids/g/api/
Django-tastypie 确实是现在的保存选择。
如果您使用 django 1.3,我个人建议查看 django-rest-framework,因为它使用新的基于类的视图。 djangopackages.com 的比较页面显示它有很好的参与度和活跃度。而且,哇,API 肯定有一个nice browsable interface。
【讨论】:
【参考方案2】:我没有这方面的经验,但我相信 Pydanny:
django-piston 近两年来几乎没有得到支持。那是 永恒,解决多个问题的分叉数量是 引起恐慌。正因为如此,在这个时候我 推荐django-tastypie。它是最新的,非常好 文档,支持OAUTH,在Django中获得第二名 包裹 Thunderdome(它获得了将近 3 倍的积分!)。另一个工具 要考虑的是 Django Rest Framework,它和 django-tastypie 但缺乏 OAUTH 支持。
在 django-piston 前线,约书亚·金斯伯格 (Joshua Ginsberg) 接管了缰绳 我们应该希望再次看到一些运动。在这种情况下,我会 能够删除博客文章的这一部分。
来自 Pydanny 的 blog。
【讨论】:
更新来自 Pydanny 的博客:pydanny.com/choosing-an-api-framework-for-django.html。总结:django-piston 已经死了,tastepie 和 django-rest-framework 万岁。【参考方案3】:已经用 django Piston、tasticpie 和 django webmachine Django 美味派实现了 API!话虽如此,我认为虽然当你的 API 建模接近你的模型时,美味派真的很好,但一旦你想开箱即用,做事情就会有点复杂。一些issues 有解决方法,而其他人则必须做更多的弯曲而不是建造。它可能仍会覆盖 90% 的 django 用例。
Afaik Webmachine 以流行的 erlang webmachine 为蓝本,但最近不太活跃。所以剩下的活塞,它正在增加一些活动,而美味的馅饼,有很多的动力和活动。 Piston 更灵活一些,但 sweetpie 的发展速度非常快,而且我认为它有一个非常简单的 API。
我的建议是快速实现一个 API 原型,看看它是否涵盖了你想要做的事情。
【讨论】:
【参考方案4】: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 指南,快速了解其工作原理。
【讨论】:
以上是关于Django RESTful API - django-piston 与 django-tastypie的主要内容,如果未能解决你的问题,请参考以下文章