我一直在努力选择使用Django创建RESTful API的方法。我尝试过的方法似乎都不是“银色”子弹。来自http://fi.am的WAPI可能是我想要完成的最接近的,但是我不确定在真正的RESTful API中是否可以接受资源标识符的参数在查询字符串中而不是在“干净”中“网址格式。有关修改WAPI RestBinding.PATTERN以“清理”URL的任何建议吗?我探索过的另一个选择是Django-Rest-Interface。但是,这个框架似乎违反了我需要的最重要的部分之一,那就是包含引用其他资源的完整资源URL(参见http://jacobian.org/writing/rest-worst-practices/链接的不当使用)。最后的选择是使用django-multiresponse,基本上可以做到很长的路。
请向我提供最好的建议,特别是那些已经处理过这个决定的人。
答案 0 :(得分:41)
对于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<pk>[^/]+)/$', InstanceModelView.as_view(resource=MyResource)),
)
以官方网站为例,以上所有代码均提供api,自解释文档(如基于soap的webservice),甚至是沙箱进行测试。非常方便。
答案 1 :(得分:18)
我相信最近发布的django-piston现在是在Django中创建合适REST接口的最佳解决方案。 django-piston
注意 :似乎不再维护django-piston(请参阅下面的评论)
答案 2 :(得分:9)
django-tastypie是一个很好的方法,他们的口号是:“自2010年以来为Django应用程序创建美味的API”非常令人欣慰;)
答案 3 :(得分:5)
您可以查看django-dynamicresponse,这是一个轻量级框架,用于向您的Django应用程序添加带有JSON的REST API。
它只需要很少的更改就可以为现有的Django应用程序添加API支持,并且可以直接从新项目开始构建API。
基本上,它包括用于将JSON解析为request.POST的中间件支持,以及将返回的上下文序列化为JSON或根据请求类型有条件地呈现模板/重定向。
这种方法与其他框架(例如django-piston)的不同之处在于,您不需要为API请求创建单独的处理程序。您还可以重用现有的视图逻辑,并像普通视图一样继续使用表单验证等。
答案 4 :(得分:4)
我不知道这个项目是否对您有用,但发送链接几乎不会受到伤害。看看http://opensource.washingtontimes.com/projects/django-apibuilder/提供的django-apibuilder。也许它有用吗?
/的Jesper
答案 5 :(得分:0)
看看这个RestifyDjango。
答案 6 :(得分:0)
https://github.com/RueLaLa/savory-pie
Savory Pie是一个支持django的REST框架。
答案 7 :(得分:0)
我建议你研究一下Django Rest Framework(DRF),玩这个并看看它是否符合你的要求。我推荐DRF的原因是因为它通过使用GenericAPIView类,Mixin Classes和Mixed in Generic视图使得API视图变得非常简单。您可以轻松地使用久经考验的设计模式来制作API端点,同时保持代码库的整洁和简洁。编写代码总是很棒时,你也会干。您的API视图长度为2-3行。
您可以查看本教程http://programmathics.com/programming/python/django-rest-framework-setup/,该教程从设置环境开始,通过使用django rest框架制作RESTful API的不同方法。
免责声明:我是该网站的创建者。