Java教程

springboot整合swagger及404问题解决

本文主要是介绍springboot整合swagger及404问题解决,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

一、版本描述

  • 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

Snipaste_2020-03-01_21-06-12.png

打个小广告

欢迎大家关注我的公众号:后端随笔

以及个人博客: wubc.me

这篇关于springboot整合swagger及404问题解决的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!