背景
平时的工作大多都是使用的postman进行前后端的调试,其实最开始也试过下swagger,但是碍于swagger-ui奇丑的界面和接口调试超级不方便便弃用了;但是今天突发奇想为什么这二者不可以结合起来呢,遂百度了一番,结局是令人欣喜的,网上已有各路神仙发掘了这个神操作,激动的我按耐不住,跟着操作了一番,但是在导入到postman中报错,无法成功导入。。。
好在秉着不抛弃不放弃的精神,继续看了看原因,自己胡乱改了下配置,然后居然可以了。原来网上大家的操作都是对的,但是大家忽略了一个地方,就是swagger自身的配置,能够导入到postman中的swagger其配置是DocumentationType.SPRING_WEB。
话不多说,如果你也遇到了swagger api 导入到 postman错误的情况,或者想知道怎样才能正确的导入就请继续往下看吧~
Swagger配置
/**
* Swagger2API文档的配置
*/
@Configuration
@EnableSwagger2
public class Swagger2Config {
@Bean
public Docket createRestApi() {
// 使用spring-web兼容postman
return new Docket(DocumentationType.SPRING_WEB)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage("com.jjh"))
.paths(PathSelectors.any())
.build();
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("swagger-demo后台系统")
.description("swagger后台模块")
.contact("jjh")
.version("1.0")
.build();
}
}
注意,其中的DocumentationType.SPRING_WEB是重点,如果你的配置不是SPRING_WEB而是SWAGGER_2,那么可以尝试改成SPRING_WEB,没准就可以导入了。(我就是改了这里然后就可以导入了)
细心的同学会发现,SWAGGER_2和SPRING_WEB对应生成的API json格式是有所区别的,SPRING_WEB的json是可以被postman解析的,有兴趣的同学可以将SPRING_WEB对应生成的API json拷贝到postman下import中的Paste Raw Text 尝试下。
顺便附上swagger的依赖项:
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.2</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.9.2</version>
</dependency>
导入Postman
打开swagger-ui页面,复制地址(http://localhost:8080/v2/api-docs):
打开postman,选中Import-》Import From Link 粘贴地址到输入框中,点击Import按钮即可完成导入。
如下图左侧可以看到已导入的接口列表:
参考文档
Swagger与postman使用心得
最强PostMan使用教程(6)- 使用Postman导入swagger OPEN API