springboot整合Swaggere3

  • Swagger简介

    • RestFul Api 文档在线自动生成工具=》Api文档与Api定义同步跟新

    • 可以在线测试Api接口

    • 支持多种语言

    • Swagger是一个功能强大且易于使用的API开发人员工具套件,适用于团队和个人,可在整个API生命周期(从设计和文档到测试和部署)中进行开发。

      Swagger由开放源代码,免费工具和市售工具共同构成,它使任何人(从技术工程师到街头智能产品经理)都可以构建每个人都喜欢的惊人API。

    • 官网:https://swagger.io/

  • SpringBoot集成Swagger

    1. 导入所需要的jar

      dependency>
                  <groupId>io.springfox</groupId>
                  <artifactId>springfox-boot-starter</artifactId>
                  <version>3.0.0</version>
              </dependency>
      
      
    2. 自启动类添加注解

      @SpringBootApplication
      //开启Swagger
      @EnableOpenApi
      public class SpringbootswaggerApplication {
      
          public static void main(String[] args) {
              SpringApplication.run(SpringbootswaggerApplication.class, args);
          }
      
      }
      
    3. Swagger3Config的配置

      @Configuration
      public class SwaggerConfig {
      
          //作者信息
          public static final Contact DEFAULT_CONTACT
                  = new Contact(
                  "dbh",
                  "",
                  "1625397016@qq.com");
          @Bean
          public Docket docket(){
              return new Docket(DocumentationType.OAS_30)
                      .apiInfo(apiInfo())
                      .select()
                      //配置需要扫描的接口
                      // RequestHandlerSelectors.any()扫描全部
                      //RequestHandlerSelectors.none()不扫描
                      //RequestHandlerSelectors.withClassAnnotation()扫描类上面的注解
                      //RequestHandlerSelectors.withMethodAnnotation()方法上的注解
                      .apis(RequestHandlerSelectors.basePackage("com.dbh.springbootswagger.controller"))
                      //过滤什么路径
                      // PathSelectors.none()不过滤
                      //PathSelectors.any()过滤全部
      
                      .paths(PathSelectors.any())
                      . build();
          }
      
      
          //配置swagger的信息
          private ApiInfo apiInfo(){
              return new ApiInfo(
                      "Swager接口日记",
                      "在小的帆也能远航",
                      "1.0",
                      "urn:tos",
                      DEFAULT_CONTACT,
                      "Apache 2.0",
                      "http://www.apache.org/licenses/LICENSE-2.0",
                      new ArrayList<>());
          }
      
      
      
          //配置分组
          @Bean
          public Docket docket1(){
             return new Docket(DocumentationType.OAS_30).groupName("A");
          }
      
          @Bean
          public Docket docket2(){
              return new Docket(DocumentationType.OAS_30).groupName("B");
          }
      
      
      }
      
      
    4. Swagger注解的使用说明

      controller配置

      @RestController
      public class HelloController {
      	//方法描述
          @ApiOperation("Hello控制器")
          @RequestMapping("/hello")
          //@ApiParam 属性描述
          public User hello(@ApiParam("用户名") String Username){
              return new User();
          }
      
      
      }
      

      实体类配置

      @ApiModel("用户实体类") //类描述
      public class User {
          //字段描述
          @ApiModelProperty(value = "id",dataType="String",name="username")
          private int id;
          @ApiModelProperty(value = "用户名",dataType="String",name="password")
          private String name;
          @ApiModelProperty(value = "密码",dataType="String",name="password")
          private String pwd;
      }
      
    5. 访问 http://localhost:8080/swagger-ui/index.html,就可以查看效果了

      注意:我这个是3.0版本的,如果版本不同那存在的路径不同,你可以通过查看springfox-swagger-ui这个jar查看路径,如图

posted @ 2021-01-18 20:52  dbhgood  阅读(94)  评论(0编辑  收藏  举报