在使用大量使用REST服务的JavaScript时--包括使用GET、PUT、POST、DELETES等vocab;我发现很难模拟服务器端,这样前端开发就可以独立进行(后端)。
有时候捕获多步数据也很有用,这样我们甚至可以帮助重现整个REST链(或者从这些链触发的与前端相关的bug)
我可以使用什么工具来模拟REST调用,特别是有状态的调用?(例如,如果我对某个资源执行PUT,我希望它的下一个GET会以某种方式发生变化)
我试过SOAPUI 4.0.1,它的REST模拟令人失望。另外,我的需要超出了单一状态模拟(任何人都可以用静态.json文件完成)。我需要做状态转换类型的模拟;最好使用Content-Range标题。
有没有人?
2条答案
按热度按时间zbsbpyhn1#
实际上,我创建了自己的Java REST Mock Engine,它基本上可以模拟任何响应。只要您可以手工或剪切粘贴一个模拟整个http响应的文本文件,就可以使用我的解决方案来模拟服务。
下面是servlet:
要配置它,请将预建的响应文件放在
WebContent
文件夹中。我通常以.http
扩展名结束这些文件。下面是一个
init.http
文件示例。假设我们将此文件放在WebContent中名为data
的文件夹中:标题必须用空行(没有空格,nada)与正文分开。熟悉http的人会注意到这是一个纯粹的http响应。这是故意的。
您可以使用此工具模拟您希望响应具有的任何http标头;甚至使用不同的服务器头进行响应(在我的示例中,我模拟了假装为IIS6.0的响应);、或不同HTTP状态代码等。
从浏览器/javascript调用它;首先用以下物质灌注:
然后在javascript或REST AJAX 调用中,如果它转到
使用任何方法或参数;它将获得您以前创建的http响应;甚至下至内容范围;缓存标头;如果您需要后续的 AJAX 调用返回其他内容,只需再次使用
__setdata
调用即可。我建议您在Web应用程序中设置一些按钮来执行显式的状态转换。假设一切都已设置,对于模拟的REST链,开发人员可以执行以下操作:
1.调用
1.运行一个javascript模块,该模块将导致调用(例如,使用GET)
1.单击按钮,然后执行以下操作:
1.运行另一个javascript步骤,该步骤将导致调用(例如,使用PUT)
1.单击另一个按钮,然后执行以下操作:
1.运行另一个javascript步骤,该步骤将导致调用(例如,使用GET)
但这次预期结果与#4不同。
这甚至应该与二进制和gzip的响应工作,但我还没有测试。
7tofc5zh2#
下面是另一个自制的休息模拟工具:https://github.com/mkotsur/restito。