2014-07-08 48 views
0

我正在构建与后端API通信的iPhone应用程序。目前,这个API是用Django编写的(由我以外的其他人编写),我们正在考虑从头开始重写它。我们唯一真正的要求是API必须完全REST完全版本化。认证/授权方案目前不是优先事项(因为在OAuth中不需要,我们可以使用基本认证)。Python中的REST API/Django

我来自Ruby/Rails背景,我根本不知道python。

所以我的问题是:

是否有任何的Django库,将可以很容易地快速建立这样的API?

我在想像的工具,如grape,rails-api甚至sinatra(也许作为rails中间件)。

我知道flask,但它可以集成到Django吗?

+0

Django的tastypie – sumit

回答

1

Django的活塞 https://bitbucket.org/jespern/django-piston/wiki/Documentation

优势 - 轻松搞定安装和启动。如果使用默认配置,则效果很好。缺点 - 实现自定义序列化方法很困难。

Django的REST框架http://www.django-rest-framework.org/

优势 - 简单的学习曲线

缺点 - 似乎有至少文档出的三个。

TastyPiehttp://django-tastypie.readthedocs.org/en/latest/

优势 - 最好的名字了三个选项中。似乎具有实现定制序列化和绑定到非ORM数据源的最多功能。

限制,许可,认证是简单

缺点 - 我避免TastyPie首次周围的原因是它似乎为我的需求太复杂。对于简单的用例来说,TastyPie可能是过度杀伤性的。

+0

DRF也有节流,权限和验证。我还没有尝试过其他人,但我已经即使当我不得不实施更高级的东西时也没有问题 – argaen

+0

TastyPie看起来非常有趣,但是看看README,它看起来不支持JSON响应(这是一个问题),并且没有提及超媒体API /内容-types(我特别感兴趣的是[json:api](http://jsonapi.org))。 –

2

TastyPieDjango REST framework是Django的最佳选择。

就个人而言,我认为TastyPie特别擅长为您选择默认的一套约定,让您快速启动和运行,而且Django REST框架在其分层设计中特别出色,因此您可以轻松定制API需要它。

两者都有大量的文档和大量的社区支持。 (我不知道@ timus2001缺乏文档评论的依据。)

你绝对不应该使用活塞,因为它已经很久没有维护了。(最后版本是2011

参见this similar StackOverflow question,和丹尼尔格林菲尔德的take on this从早在2012年