Swagger

Swagger

使用Swagger你只需要按照它的规范去定义接口及接口相关的信息,再通过Swagger衍生出来的一系列项目和工具,就可以做到生成各种格式的接口文档,以及在线接口调试页面等等。
官网

knife4j是为Java MVC框架集成Swagger生成Api文档的增强解决方案。

使用方式

  1. 导入knife4j的maven坐标
<denpendency>
    <groupId>com.github.xiaoymin</groupId>
    <artifactId>knife4j-spring-boot-starter</artifactId>
    <version>3.0.2</version>
</denpendency>
  1. 导入knife4j相关配置类

    // WebMvcConfig.java
    @Slf4j
    @Configuration
    @EnableSwagger2
    @EnableKnife4j
    public class WebMvcConfig extends WebMvcConfigurationSupport {
        @Bean
        public Docket createRestApi(){
            // 文档类型
            return new Docket(DocumentationType.SWAGGER_2)
                    .apiInfo(apiInfo())
                    .select()
                    .apis(RequestHandlerSelectors.basePackage("com.charley.reggie.controller"))
                    .paths(PathSelectors.any())
                    .build();
        }
    
        private ApiInfo apiInfo() {
            return new ApiInfoBuilder()
                    .title("瑞吉外卖")
                    .version("1.0")
                    .description("瑞吉外卖接口文档")
                    .build();
        }
    }
    
  2. 设置静态资源(WebMvcConfig类中的addResourceHandlers方法),否则接口文档页面无法访问

    registry.addResourceHandler("doc.html").addResourceLocations("classpath:/META-INF/resources/");
    registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
    
  3. 在LoginCheckFilter中设置不需要处理的请求路径,可以在不登录情况下访问相关资源

常用注解

@Api

@ApiModel和@ApiModelProperty

@ApiOperation、@ApiImplicitParams和@ApiImplicitParam

效果