一、版本描述
- springboot:2.1.5.RELEASE
- swagger:2.9.2
加入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>
二、实例
2.1 swagger配置
编写swagger配置类,简单起见直接写死相关的设置,项目中可以通过读取配置文件信息来注入swagger。
@EnableSwagger2
@Configuration
public class SwaggerConfig {
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage("me.wubc"))
.paths(PathSelectors.any())
.build();
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("编程头条API文档")
.description("编程头条API文档")
.contact(new Contact("无编程", "http://wube.me", "xx@gmail.com"))
.termsOfServiceUrl("http://wube.me")
.version("1.0")
.build();
2.2 controller编写
@Api("登录接口")
@RestController
@RequestMapping("api/v1/login")
public class LoginController {
@Autowired
private ApUserLoginService apUserLoginService;
@ApiOperation("登录接口")
@PostMapping("loginAuth")
public ResponseResult login(@RequestBody User user) {
return apUserLoginService.loginAuth(user);
}
}
简单解释下:
- @API:表示一个开放的API,可以通过description简明的描述API的功能
- @ApiOperation,表示这个接口是用来干什么的,还可以通过value,notes描述该操作的作用,response描述正常情况下该请求返回的对象类型
更多的注解可以参考官方文档: docs.swagger.io/swagger-cor…
三、问题
打开ip:port/swagger-ui.html时出现404错误,这时只需要修改刚刚我们写的SwaggerConfig这个类:继承WebMvcConfigurationSupport,然后重写addResourceHandlers方法,示例如下:
public class SwaggerConfig extends WebMvcConfigurationSupport {
// 忽略已有的代码
...
//重写这个方法
@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/");
}
}
四、结尾
最后再次运行项目,ip:{port}/swagger-ui.html就行了,注意如果配置上下文context,则需要将地址改为:ip:{port}/{context}/swagger-ui.html

打个小广告
欢迎大家关注我的公众号:后端随笔

以及个人博客: wubc.me