繁体   English   中英

用于Django项目/应用程序的RESTful API

[英]RESTful APIs for Django projects/apps

当你想在Django中“恢复”你的Django项目时,你更喜欢什么?

我得出的结论是,有三个选项可以做到:

对我来说这样做的正确方法是尝试所有''并选择最适合我的那个,所以同时我想听听你的...

谢谢。

我对django-piston最熟悉,所以我自然会引导你走向那个方向。

然而,快速浏览另外两个,表明django-rest-interface只是将模型公开为资源,并且django-restful-resources是同一个人的一次性尝试。

活塞,如果我没记错的话,是从bitbucket.org自己的网站开发中产生的,并且允许很多灵活性 - 你可以从资源的访问方法中返回几乎任何对象,而不仅仅是模型实例,并且它将被正确编码。 它还内置了对一些不错的功能的支持,例如表单验证(如果你能让它正常工作),并请求限制等等。

使用django 1.3中新的基于类的通用视图,使用自定义序列化器和反序列化器实现您自己的休息接口将非常容易,只需使用股票代码复制几乎完整的活塞实现。 我在500行代码中创建了一个基于View(1.3)的休息模块,具有通用的RESTful资源类和子资源,对关联的自然键支持,json和XML序列化等等。 该模块真的是根据我的应用程序的要求量身定制的

我这样做是为了克服活塞代码中的一些限制,例如在处理程序调用.get()之前修改查询集(例如使用.values(...)),或者不能使用模型的方法在序列化。

如果你按照自己的意愿去做,那么在几天之内你就会拥有一套完整的课程和混合课程,你将完全理解并控制它们。

作为写“django-restful-resources”的“有些人”,我想澄清它存在的原因。 它不是尝试将模型公开为资源,而是一种允许将单个URL映射到多个不同处理程序方法的方法,每个HTTP动词一个。 就这样。 它可以用于公开模型对象,但它也可以用于将服务公开为资源或您希望通过单个URL和HTTP谓词进行交互的任何其他内容。 如果您正在寻找功能更全面的解决方案,那么请务必使用Piston。

正如eternicode所提到的, django-piston非常出色。 它成熟,功能齐全,背后有一个很好的社区。 目前似乎缺乏持续的开发,尽管有人谈论社区驱动的分支,因此可能会发生变化。

django-tastypie也很值得一看,目前似乎有很多推动力。

我还发布了另一个值得考虑的选项: django-rest-framework 它背后有一些非常好的功能,例如API自动文档

它使用了基于Django 1.3的类视图,如saverio所提到的,这意味着您可以直接使用它提供的一些MixIn类,而无需直接使用框架。 (例如, 添加HTTP内容协商以将输出序列化为多种类型

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM