Tom*_*tie 203

作为django-rest-framework的作者,我有一个明显的偏见;)但我对此有希望 - 相当客观的意见是这样的:

TastyPie

  • 正如托尔斯滕所指出的那样,对于那些与令人敬畏的django-haystack相同的窥视所写的东西,你不会走得太远.从我在他们的邮件列表中看到的Daniel Lindsey等人非常有帮助,Tastypie稳定,全面且记录完备
  • Excel为您提供了一套合理的默认行为,并使用该样式构建API非常容易.

Django REST框架

  • 为您提供HTML浏览式自描述API.(EG,请参阅教程API.)能够直接在浏览器中导航和与API交互是一个很大的可用性胜利.
  • 试图接近Django的习语 - 建立在Django基于类的视图之上......等等(尽管TastyPie在Django的CBV存在之前出现,所以使用它自己的基于类的视图实现)
  • 我想认为底层架构很好地构建,解耦等...

无论如何,两者都很好.我可能会将Tastypie描述为为您提供开箱即用的合理默认设置,并且REST框架非常好地解耦和灵活.如果您计划在API中投入大量时间,我建议您浏览每个API的文档和代码库,并尝试了解哪些更适合您.

显然,还有'Why TastyPie?' 其中的部分是自述文件,以及"REST框架2声明".

另请参阅Daniel Greenfeld关于从2012年5月开始为Django选择API框架的博客文章(值得注意的是,这仍然是在大型REST框架2.0发布之前的几个月).

2013年12月2013 7月,Reddit上还有几个问题与人们提出同样的问题.

最后更新于2014年2月

  • 顺便说一句,我们一直在使用Django-rest-framework进行一个重大项目,它真棒!我在早期测试驱动tastypie一周,并且对于使用DRF没有遗憾.遗憾的是,文档不符合代码和框架本身,但除此之外,纯粹的幸福. (7认同)

Wil*_*hes 19

两者都是不错的选择.

对于过滤器,tastypie更加强大,开箱即用.如果你有一个公开模型的视图,你可以做Django风格的不等式过滤器:

http://www.example.com/api/person?age__gt=30
Run Code Online (Sandbox Code Playgroud)

或OR查询:

http://www.example.com/api/mymodel?language__in=en&language__in=fr
Run Code Online (Sandbox Code Playgroud)

djangorestframework可以实现这些功能,但您必须为每个模型编写自定义过滤器.

对于追溯,我对django-rest-framework印象更深刻.Tastypie尝试通过电子邮件发送settings.ADMINS例外情况DEBUG = False.何时DEBUG = True,默认错误消息是序列化的JSON,这更难以阅读.

  • 您不需要在Django REST Framework中为此编写自定义过滤器.你只需要使用REST框架中提供的`DjangoFilterBackend`:http://www.django-rest-framework.org/api-guide/filtering#api-guide (8认同)

Tor*_*cht 12

编辑过时的答案,tastypie不再真正维护.如果必须选择一个框架来执行REST,请使用Django REST框架.

有关它们之间实际差异的概述,您应该阅读它们的文档.它们或多或少完整且非常成熟.

我个人倾向于尝试tastypie.它似乎更容易设置.它是由创建django-haystack的人创建,这是非常棒的,根据django-packages,它比Django REST框架使用得更多.

  • 文档根本不是"关于它们之间实际差异的概述". (2认同)

Tom*_*eld 5

值得注意的是,因为这是第一次被要求DRF不断壮大.

它是两个在github上更活跃的(无论是在提交,明星,分叉和贡献者方面)

DRF具有OAuth 2支持和可浏览的API.

老实说,最后一个功能是杀手.能够指出我所有的前端开发人员在可浏览的API上,当他们不确定某些东西是如何工作的时候说'去玩; 找出'太棒了.

尤其是因为这意味着他们可以按照自己的条件理解它,并且知道API确实绝对地完成了"文档"所说的内容.在与API集成的世界中,仅这一事实使得DRF成为可以击败的框架.