关于使用swagger的问题
Posted 林嘉瑜
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于使用swagger的问题相关的知识,希望对你有一定的参考价值。
近来在公司实现,接触到不少新的工具框架,今天见识到了一个新的工具,它的存在好像是情理之中的,但是以前就没有遇到这东西。那就是swagger,它的功能就是把你写的controller的内容都集合到一起方便测试。或者说是把接口都集合在一起。什么样的感觉?看图就明白。
有了它,感觉方便了很多,一个是不用打开postman之类的测试工具了,另一方面连路径参数什么的都不用写了,让人兴奋。
介绍一下怎么安装,我使用的是maven项目,maven项目在start.spring.io那里生成什么的都可以,至少加个web,然后在pom.xml添加上下面的代码:
<dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.7.0</version> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>2.7.0</version> </dependency> <dependency> <groupId>joda-time</groupId> <artifactId>joda-time</artifactId> <version>2.9.9</version> </dependency>
这把我遇到需要的都加上了。包括了一些需要用到的jar包什么的。
接着写个关于它的配置文件:
@Configuration
@EnableWebMvc
@EnableSwagger2
@ComponentScan(basePackages = {"com.example.swagger.swagger"})
public class SwaggerConfig {
ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("XXXX Web Selfservice APIs")
.description("")
.license("")
.licenseUrl("")
.termsOfServiceUrl("")
.version("1.0.0")
.build();
}
@Bean
public Docket customImplementation() {
return new Docket(DocumentationType.SWAGGER_2)
.select()
.apis(RequestHandlerSelectors.basePackage("com.example.swagger.swagger"))
.build()
.directModelSubstitute(org.joda.time.LocalDate.class, java.sql.Date.class)
.directModelSubstitute(org.joda.time.DateTime.class, java.util.Date.class)
.apiInfo(apiInfo());
}
}
下一步是要增加它在项目的配置文件:
@Configuration
public class WebMVCConfig extends WebMvcConfigurerAdapter{
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("swagger-ui.html")
.addResourceLocations("classpath:/META-INF/resources/");
registry.addResourceHandler("/webjars/**")
.addResourceLocations("classpath:/META-INF/resources/webjars/");
}
}
最后就是写一个controller了:
@Api(value = "controller信息") @RestController @EnableAutoConfiguration @RequestMapping(value = "/api/index") public class indexController { @ApiOperation(value = "测试swagger", notes = "这是一条注意信息") @RequestMapping("/hello") public String hello() { return "hello"; } }
现在可以打开网址:http://localhost:8080/swagger-ui.html,见证它的神奇。
以上是关于关于使用swagger的问题的主要内容,如果未能解决你的问题,请参考以下文章