忘了 postman 是被谁种草的,很长一段时间内 postman 都是我做接口测试的首选工具,之前也有小伙伴跟我安利过 IDEA 中的 RestfulToolkit 插件,但是一直没机会体验,最近抽空玩了一把,感觉在某些场景下还蛮不错的(不需要认证的场景下),和小伙伴们分享下。
1. RestfulToolkit
RestfulToolkit 是一套 RESTful 服务开发辅助工具集,它主要提供了如下功能:
- 根据 URL 直接跳转到对应的方法定义 ( Ctrl \ or Ctrl Alt N );
- 提供了一个 Services tree 的显示窗口;
- 一个简单的 http 请求工具;
- 在请求方法上添加了有用功能: 复制生成 URL;,复制方法参数...
- 其他功能: java 类上添加 Convert to JSON 功能,格式化 json 数据 ( Windows: Ctrl + Enter; Mac: Command + Enter )。
它支持 Spring 体系 (Spring MVC / Spring Boot 1.x,2.x);支持 JAX-RS;支持 Java 和 Kotlin 语言。
2. 安装
在 IDEA 中选择 File->Plugins,然后搜索 RestfulToolkit,如下:
然后点击 install 按钮即可,安装完成后重启 IDEA 即可:
3. 使用
创建一个项目,在项目的右边可以看到 Rest Services 选项,如下:
点开该选项卡,就可以进行 RESTful 接口测试了。
松哥写了四个测试接口,大家来看一下:
@RestController
public class BookController {
@PostMapping("/book")
public RespBean addBook(Book book) {
System.out.println(book);
return RespBean.ok("添加成功");
}
@GetMapping("/book/{id}")
public Book getBookById(@PathVariable Integer id) {
Book book = new Book();
book.setId(id);
return book;
}
@PutMapping("/book")
public RespBean updateBook(@RequestBody Book book) {
return RespBean.ok("更新成功");
}
@DeleteMapping("/book")
public RespBean deleteBookById(Integer id) {
return RespBean.ok("删除成功");
}
}
这四个借口基本上涵盖了我们日常常见的传参方式,启动项目,我们来看下右边:
可以看到,项目启动成功后,四个测试接口都会在 RestfulToolkit 工具中展示出来:
并且不同的接口,都有对应的默认参数,例如更新接口,参数是 JSON 格式,这里就会自动列出来:
开发者只需要根据实际情况重新填一下具体的参数值即可。
测试成功,结果如下:
RestfulToolkit 有一个功能,就是点击接口,可以跳转到对应的方法定义上,如下:
选中接口,右键单击,有两个选项:
- Copy Full Url:拷贝完整的 URL 地址。
- Jump to Source:跳转到接口定义的代码处。
除了这个,RestfulToolkit 还能帮我们根据一个类,快速转换为 JSON,有时候我们用 postman 测试的时候,自己写 JSON 太慢了,这是一个好办法,具体操作如下:
选中类名,右键单击,最上面有两个选项,如下:
- Convert to JSON(Compressed):生成一个压缩后的 JSON,其实就是一行 JSON。
- Convert to JSON:生成一个带格式的 JSON。
4. 一个题外话
有的小伙伴可能会问,用 RestfulToolkit 的话,基于 Cookie+Session 的认证怎么办?其实,一个合格的 RESTful 接口,本身就是无状态的,既然是无状态的,那么认证就不需要 Cookie 了,每个请求都自己带上令牌就行了,反正 RestfulToolkit 也支持修改请求头。
不过话说回来,如果你的项目就是基于 Cookie + Session 认证的,那么接口测试,我还是建议使用 postman,毕竟这个工具更专业。或者你也可以试试 IDEA 自带的 Http Client 工具,如下图:
好啦,今天和小伙伴们分享了一个小工具,感兴趣的小伙伴可以去体验一把啦~对了,2020 版之后的 IDEA 可以使用 Restful Tools。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。