2011-04-20 54 views
2

我正在为Django项目编写一组REST服务。我一直在使用django-rest-framework。由于其功能有限,我不得不切换到我非常喜欢的django活塞。Django REST浏览器界面

但是,django-rest-framework有一个非常好的功能 - 它能够显示一个类似管理员的界面,用于测试从浏览器创建的服务。这对于调试目的来说太棒了。非常简单:每个HTTP方法都会显示一个表单,例如“GET”,“POST”等。随后将显示可用内容类型的下拉列表以及用于发送数据的文本字段。

正如我所看到的,这并不是一个真正的以任何方式与特定REST框架直接相关的功能。它甚至不一定是关于Django的。它可以全部使用HTML + JS或外部网站来实现。

我的问题是:你用什么手动测试/调试Web服务?你能指点我一些HTML代码片段或Django的应用程序,可以做所描述的事情吗?

回答

8

这看起来很明显,但是: 为什么不直接使用Django的测试客户端(django.test.client.Client)?那么不必在浏览器中手动“调试”,您可以编写符合期望的单元测试,并利用这些单元测试的优势。

例如

from django.test.client import Client 
client = Client() 
resp = client.put('/employee/2/', data={'email': '[email protected]'}, follow=True) 
#... etc 
+0

嗯,也许你是对的。我会考虑这一点。也许这只是我从编写Java代码的黑暗时代开始准备任何单元测试的痛苦的坏习惯。 – julkiewicz 2011-04-21 00:23:02

+0

这让我轻笑:P(我知道你的痛苦)。 django测试客户端非常棒,使用简单。我在我的shell(IPython)中使用'探索性'交互式会话,然后将会话的历史记录转换为可重用的测试用例。 – jsw 2011-04-21 00:56:33

+0

这是否拉出“2”并将其作为arg传递给由urlconf确定的视图? – 2011-06-21 07:14:53

3

作为django-rest-framework的作者,你应该好好挑选一些功能可以充实的功能。 :)(obv我已经对我自己的领域以及我计划开发的领域有所想法,但是想要获得一些用户视角真的很好)

您绝对正确地使用API​​浏览器并不局限于任何特定框架。对我来说,这与DRF有很大关系,我希望看到更多的API框架采取类似的方法。 RESTful API的一个好处就是它们应该是自我描述的,而且我认为我们今天构建的如此多的Web API不是Web可浏览的,这似乎是违反直觉的。

哦,并完全同意jsw re。在django测试Web APIs,我不会使用框架的可浏览API来替换自动化测试。

+0

据我所知,并没有真正支持外键连接。我发现这个功能是最难实际实现的功能,所以我真的很期待为我完成它。至于GUI部分,我喜欢它,并且仍然错过它。 – julkiewicz 2011-04-21 23:05:45

+0

也许我会澄清 - 我真的很喜欢你写的东西。尽管早期版本,它表现非常稳定。我没有问题。文件是体面的。如果不是那些外键,我想我肯定会使用它。它认为它有可能成为Django的“宁静解决方案”。 – julkiewicz 2011-04-21 23:22:13

+0

不知道在这里交叉发布一个问题的礼仪,但是,你可能是最好的人提供这方面的一些见解:http://stackoverflow.com/questions/5752748/implementing-restful-servers-with -django-for-dojos-jsonreststore-which-tools-f – jsw 2011-04-22 06:14:52

相关问题