springboot集成swagger-bootstrap-ui(knife4j)

本文只做集成,其他功能可依据官网实现。

1、官网地址

https://doc.xiaominfo.com

springboot集成swagger-bootstrap-ui(knife4j)_第1张图片

2、目录结构

springboot集成swagger-bootstrap-ui(knife4j)_第2张图片

3、pom依赖

        
        
            io.springfox
            springfox-swagger2
            ${swagger.version}
        
        
        
            com.github.xiaoymin
            swagger-bootstrap-ui
            ${xiaoymin.version}
        

4、MybatiesplusSwagger2

package com.example.mybatiesplus;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

/**
 * 接口文档
 *
 * @author lst
 * @since 2020-05-07
 */
@Configuration
@EnableSwagger2
public class MybatiesplusSwagger2 {

    /**
     *   return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()); 默认
     * @Description
     * @author lst
     * @date 2020-5-7 10:53
     * @return  Docket
     */
    @Bean
    public Docket customDocket(){
        return new Docket(DocumentationType.SWAGGER_2)
        .apiInfo(apiInfo())
        .groupName("mybatiesplus")
        .select()
        .apis(RequestHandlerSelectors.basePackage("com.example.mybatiesplus.controller"))
        .paths(PathSelectors.any())
        .build();
    }

    /**
     * @Description
     * @author lst
     * @date 2020-5-7 10:53
     * name:开发者姓名
     * url:开发者网址
     * email:开发者邮箱
     * @return ApiInfo
     */
    private ApiInfo apiInfo() {
          Contact contact = new Contact("张三", "https://blog.csdn.net/qq_33612228", "[email protected]");
          return new ApiInfoBuilder()
          .title("张三mybatiesplus API接口")//标题
          .description("API接口的描述")//文档接口的描述
          .contact(contact)
          .version("1.1.0")//版本号
          .build();
    }
}

5、MybatiesplusApplication

package com.example.mybatiesplus;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class MybatiesplusApplication {

    public static void main(String[] args) {
        SpringApplication.run(MybatiesplusApplication.class, args);
    }

}

6、启动应用访问

在浏览器输入 http://127.0.0.1:8002/doc.html

springboot集成swagger-bootstrap-ui(knife4j)_第3张图片

7、swagger注解的详细说明

   swagger2使用说明:
         @Api:用在类上,说明该类的作用
         @ApiOperation:用在方法上,说明方法的作用
         @ApiIgnore:使用该注解忽略这个API
         @ApiImplicitParams:用在方法上包含一组参数说明
         @ApiImplicitParam:用在@ApiImplicitParams注解中,指定一个请求参数的各个方面
            paramType:参数放在哪个地方
                 header-->请求参数的获取:@RequestHeader
                 query-->请求参数的获取:@RequestParam
                 path(用于restful接口)-->请求参数的获取:@PathVariable
                 body(不常用)
                 form(不常用)
             name:参数名
             dataType:参数类型
             required:参数是否必须传
             value:参数的意思
             defaultValue:参数的默认值
         @ApiResponses:用于表示一组响应
         @ApiResponse:用在@ApiResponses中,一般用于表达一个错误的响应信息
             code:数字,例如400
             message:信息,例如"请求参数没填好"
             response:抛出异常的类
         @ApiModel:描述一个Model的信息(这种一般用在post创建的时候,使用@RequestBody这样的场景,请求参数无法使用@ApiImplicitParam注解进行描述的时候)
            @ApiModelProperty:描述一个model的属性
 

集成完成。

 

 

 

 

你可能感兴趣的:(spring,boot)