我一直在努力选择使用Django创建RESTful API的方法.我尝试过的方法似乎都不是"银色"子弹.来自http://fi.am的 WAPI 可能是我想要完成的最接近的,但是我不确定在真正的RESTful API中是否可以接受资源标识符的参数在查询字符串中而不是在"干净"的URL格式.有关修改WAPI RestBinding.PATTERN以"清理"URL的任何建议吗?我探索过的另一个选择是Django-Rest-Interface.然而,这个框架似乎违反了我需要的最重要的部分之一,那就是包含引用其他资源的完整资源URL(参见http://jacobian.org/writing/rest-worst-practices/网站使用不当).最后的选择是使用django-multiresponse,基本上可以做到很长的路要走.
请给我你最好的建议,特别是那些已经处理过这个决定的人.
对于Django来说,除了tastypie和活塞外,django-rest-framework还是值得一提的.我已经顺利地迁移了我的一个项目.
Django REST框架是Django的一个轻量级REST框架,旨在使构建连接良好,自描述的RESTful Web API变得容易.
快速举例:
from django.conf.urls.defaults import patterns, url from djangorestframework.resources import ModelResource from djangorestframework.views import ListOrCreateModelView, InstanceModelView from myapp.models import MyModel class MyResource(ModelResource): model = MyModel urlpatterns = patterns('', url(r'^$', ListOrCreateModelView.as_view(resource=MyResource)), url(r'^(?P[^/]+)/$', InstanceModelView.as_view(resource=MyResource)), )
以官方网站为例,以上所有代码均提供api,自解释文档(如基于soap的webservice),甚至沙箱进行测试.很方便.
链接:http: //django-rest-framework.org/
我相信最近发布的django-piston现在是在Django中创建合适的REST接口的最佳解决方案.django的活塞
注意:似乎不再维护django-piston(见下面的评论)
django-tastypie是一个很好的方式,他们的口号是:"自2010年以来为Django应用程序创建美味的API"非常令人欣慰;)
您可以查看django-dynamicresponse,它是一个轻量级框架,用于向您的Django应用程序添加带有JSON的REST API.
它只需要很少的更改就可以为现有的Django应用程序添加API支持,并且可以从一开始就直接在新项目中构建API.
基本上,它包括中间件支持,用于将JSON解析为request.POST,此外还将返回的上下文序列化为JSON或根据请求类型有条件地呈现模板/重定向.
这种方法不同于其他框架(例如django-piston),因为您不需要为API请求创建单独的处理程序.您还可以重用现有的视图逻辑,并像普通视图一样继续使用表单验证等.