来源:my.oschina.net/keking/blog/3104972前言界面调试是每个软件开发从业者必备的技能,一个完成项目可能花在接口测试和调试上的时间比实际开发和写代码要多,这几乎是每个开发的日常工作项目。所谓工欲善其事,必先利其器。在品尝IDEAREST的真香之前,postman(chrome的一个插件)确实是一个非常不错的选择,拥有完备的RESTClient功能和请求历史记录功能。但是使用IDEAREST之后,postman是可以丢失的,因为IDEARESTClient拥有postman的所有功能,还有postman没有的功能,继续往下看。另外,Java系列面试题和答案都整理好了。微信搜索Java技术栈,后台发:面试,网上可以看。postman对IDEARESTClient真香法的原因如下:首先,IDEARESTClient具备postman的所有功能,如RESTClient控制台、历史请求记录;第二,如果开发和调试可以在一个生产工具中完成,为什么要切换到另一个工具?然后IDEARESTClient还支持区分环境配置的功能,以及接口响应断言和脚本处理的能力。IDEARESTClient的请求配置可以通过文件配置来描述,所以可以按照项目和项目成员共享IDEARESTClient控制台从顶部工具栏依次为Tools->HTTPClient->TestRESTFULWebService打开后,界面IDEARESTClient控制台的界面如下:可以看到这个控制台显示的功能区和postman已经没有什么区别了,包括请求方式,请求参数以及请求头的填充都已经包含了。特别的,如果请求方式是Authorization:Basicauthentication,可以点击下图所示的按钮,会弹出一个窗口,填写用户名和密码。填写后会自动添加到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接口请求文件,既满足了自己,也方便了别人。近期热文推荐:1.1,000+道Java面试题及答案(2021最新版)2.别在满屏的if/else里,试试策略模式,太爽了!!3.该死的!Java中xx≠null的新语法是什么?4、SpringBoot2.5发布,深色模式太炸了!5.《Java开发手册(嵩山版)》为最新版本,赶快下载吧!感觉不错,别忘了点赞+转发!
