前言界面调试是每个软件开发从业者不可或缺的技能。一个项目的完成,可能比真正的开发花更多的时间在接口测试和调试上,写代码的时间甚至更多,这几乎是每个开发的日常工作项目。所谓工欲善其事必先利其器。在你品尝IDEAREST的真香之前,postman(chrome的一个插件)确实是一个非常好的选择,拥有完备的RESTClient功能和请求历史记录功能。但是使用IDEAREST之后,postman是可以丢失的,因为IDEARESTClient拥有postman的所有功能,还有postman没有的功能,继续往下看。postman对IDEARESTClient真香法的原因如下:1、首先,IDEARESTClient具有postman的所有功能,如RESTClient控制台和历史请求记录。2.其次,如果开发和调试都可以在一个生产工具中完成,为什么要换成另一个工具?3、那么IDEARESTClient也支持区分环境配置的功能,以及接口响应断言和脚本处理的能力4、IDEARESTClient的请求配置可以配置文件描述,这样就可以共享IDEAREST包含项目和项目成员的客户端控制台。从顶部工具栏,Tools->HTTPClient->TestRESTFULWebService打开后,IDEARESTClient控制台的界面如下:可以看到,这个控件和平台上显示的功能区没有区别和postman,包括请求方法、请求参数和请求头的填写。特别的,如果请求方式是Authorization:Basic,可以点击下图所示的按钮,会弹出一个窗口,填写用户名和密码。填写后会自动添加到Authorization的header中,用于记录历史请求。IntelliJIDEA自动将最近执行的50个请求保存到http-requests-log。http文件,存放在项目的.idea/httpRequests/目录下。使用请求历史记录,您可以快速导航到特定响应并再次发出请求。文件内容如下图一样大。只需单击运行按钮即可再次发送请求。如果从请求历史中再次发出请求,则其执行信息和响应输出的链接将添加到请求历史文件的顶部。构建HTTP请求脚本上的历史记录是一个完整的IDEARESTClient请求脚本。如果从控制台触发,可以直接复制历史请求记录的文件,作为HTTP请求脚本放到项目中,分享给其他成员,如果没有,也可以直接新建一个.http或者.rest结尾的文件,IDEA会自动识别为HTTP请求脚本。语法###POST请求演示POST{{baseUrl}}}get?show_env=1Accept:application/json{"name":"a"}###GET请求演示GET{{baseUrl}}}/postContent-Type:application/x-www-form-urlencodedid=999&value=content先用###三个hash键分隔每个请求体,然后请求url和header参数紧挨着,不管请求参数是POST的还是body参数或GET参数被传递,两者都需要改变。如果细心的话,你可能会发现上面例子中的代码并没有真正的请求地址。相反,它是一个{{baseUrl}}占位符,这是IDEARESTClient真正闪耀的地方。支持从指定的配置文件中获取环境相关的配置参数。不仅baseUrl可以用占位符代替,一些请求的参数如果与接口环境相关,还可以通过配置文件来区分。首先在.http脚本所在的目录下创建一个名为http-client.private.env.json的文件,然后内容如下。一级键值用于区分环境,如dev、uat、pro等。环境中的对象是HTTP请求中可以获取到的环境变量。可以通过请求的HTTP脚本中的{{xx}}占位符直接获取这里配置的参数{"uat":{"baseUrl":"http://gateway.xxx.cn/","username":"","password":""},"dev":{"baseUrl":"http://localhsot:8888/","username":"","password":""}}然后选择执行的时候请求,IDEA会让你选择执行环境的配置,比如:结果断言IDEARESTClient可以响应接口值进行脚本化断言处理,立马从接口调试工具上升为测试工具,例如:###成功测试:检查响应状态为200GEThttps://httpbin.org/status/200>{%client.test("请求执行成功",function(){client.assert(response.status===200,"响应状态不是200");});%}结果值暂存。试想这样一个场景,当一个系统需要通过认证访问的时候,如果使用postman,是不是应该先访问登录界面,然后在获取到token之后,手动粘贴复制到新调试界面的header参数中,这样太麻烦了。IDEARESTClient还有一个真香功能可以完美解决这个问题,请看下面的脚本:###DemoPOST请求POSThttps://httpbin.org/postContent-Type:application/json{"user":"admin","密码":"123456"}>{%client.global.set("auth_token",response.body.json.token);%}###DemoGETrequestGEThttps://httpbin.org/headersAuthorization:Bearer{{auth_token}}第一次认证请求结束后,即可使用在response中获取返回的token信息,然后我们通过脚本将其设置在全局变量中,那么在接下来的接口请求中,可以直接使用双花括号占位符来获取token。结论postman是大家熟知的,确实是一个很好的必备工具,之前推荐给别人这个工具,一直安利Postman,不过IDEARESTClient也确实不错,值得一试,后来安利改用IDEARESTClient,Postman被我丢了反正在和第三方连接的时候,项目中一定要包含一个rest-http.http接口请求文件,既满足自己,也方便别人。来源:my.oschina.net/keking/blog/3104972
