首页 > 其他分享 >Swagger

Swagger

时间:2024-05-20 14:51:48浏览次数:17  
标签:springfox Swagger apiInfo new swagger Docket

  1. 什么是swagger?

    swagger是一款RESTFUL接口的文档在线自动生成+功能测试功能软件。Swagger是一个规范和完整的框架,用于生成、描述、调用和可视化RESTfu风格的web服务。目标是使客户端和文件系统作为服务器一同样的速度来更新文件的方法,参数和模型紧密集成到服务器。

  2. swagger的使用

    • 导入依赖
    <!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger2 -->
    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger2</artifactId>
        <version>3.0.0</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger-ui -->
    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger-ui</artifactId>
        <version>3.0.0</version>
    </dependency>
    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-boot-starter</artifactId>
        <version>3.0.0</version>
    </dependency>
    
  3. 配置swagger

    • 创建config层编写Swagger配置
    package com.zhao.swagger.config;
    
    import org.springframework.context.annotation.Configuration;
    import springfox.documentation.swagger2.annotations.EnableSwagger2;
    
    @Configuration
    @EnableSwagger2 //开启Swagger2
    public class SwaggerConfig {
    }
    
  4. 配置Swagger: Swagger的bean实例Docket

    • 创建配置类配置Swagger
    package com.test.swagger.config;
    
            import org.springframework.context.annotation.Bean;
            import org.springframework.context.annotation.Configuration;
            import springfox.documentation.oas.annotations.EnableOpenApi;
            import springfox.documentation.spi.DocumentationType;
            import springfox.documentation.spring.web.plugins.Docket;
    
    @Configuration
    @EnableOpenApi //开启Swagger3.0
    public class SwaggerConfig {
    
        //配置swagger的Docket的bean实例
        @Bean
        public Docket docket(){
            return new Docket(DocumentationType.OAS_30);
        }
    }
    
    • 配置Swagger信息ApiInfo
     //配置Swagger信息apiInfo
        private ApiInfo apiInfo() {
            //作者信息
            Contact contact= new Contact(
                    "author",
                    "https://i.cnblogs.com/posts/edit;postId=18199833",
                    "[email protected]");//作者信息
            return new ApiInfo(
                    "大标题",
                    "描述",
                    "版本号",
                    "组织",
                    contact,
                    "Apache 2.0",
                    "http://www.apache.org/licenses/LICENSE-2.0",
                    new ArrayList<>());
        }
    
    • 设置扫描包及过滤完善上面的Docket
      //配置swagger的Docket的bean实例
        @Bean
        public Docket docket(){
            return new Docket(DocumentationType.OAS_30)
                    .apiInfo(apiInfo())//自己定义的apiInfo()
                    .select()
                    //RequestHandlerSelectors配置要扫描接口的方式
                    //basePackage指定要扫描的包
                    .apis(RequestHandlerSelectors.basePackage("com.test.swagger.controller"))
                    //paths()过滤什么路径
                    .paths(PathSelectors.ant("/new/**"))
                    .build();
        }
    
    • 设置Swagger启动与关闭:在.apiInfo(apiInfo())后面进行添加.enable(false)
    • 如何在对应的项目环境下控制是否开启:开发环境开启Swagger,生产环境就要关闭Swagger
      • 编写不同环境下的配置文件
      • 编写配置类获取项目环境
        //配置swagger的Docket的bean实例
        @Bean
        public Docket docket(Environment environment){
    
            //设置要显示的swagger的环境
            Profiles profiles =Profiles.of("dev");
            //通过environment.acceptsProfiles判断是否处在自己设定的环境中
            boolean flag = environment.acceptsProfiles(profiles);
    
            return new Docket(DocumentationType.OAS_30)
                    .apiInfo(apiInfo())
                    .enable(flag)
                    .select()
                    .apis(RequestHandlerSelectors.basePackage("com.test.swagger.controller"))
                    .build();
        }
    
    • 设置分组:.groupName("A"),多个分组就是多人协作开发时每个人分组,就是多个Docket实例

    • 接口注释及实体类注释

      @Api(tags = "Controller层"):放在类上,描述类的作用
      @ApiOperation(value = "hello方法",notes = "方法描述"):放在方法上,描述具体的方法
      @ApiParam("用户名"):参数描述

标签:springfox,Swagger,apiInfo,new,swagger,Docket
From: https://www.cnblogs.com/hytip/p/18199833

相关文章

  • OpenAPI Swagger
    一.首先你要启动你的swagger.json或者openapi.json二.然后你需要启动openapi生成代码的容器(如:python、javascript、php、golang...)我这里是pythondockerrun-d-p8090:8080--nameopenapi_generatoropenapitools/openapi-generator-online:latest-release 三.调用容......
  • springmvc+swagger2+struts2
    jar包<dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> <version>2.8.7</version> </dependency> <dependency> <groupId>com.fasterxml.ja......
  • Spring Boot2中Swagger3使用
    1.依赖引入<!--引入swagger--><dependency><groupId>org.springdoc</groupId><artifactId>springdoc-openapi-ui</artifactId><version>1.7.0</version></dependency>2.常用注解介绍swagger2......
  • swagger简介
    Swagger是一个用于设计、构建和文档化WebAPI的开源工具。它可以帮助开发人员设计和描述API,并生成易于理解的文档。通过Swagger,开发人员可以更方便地了解API的功能、参数、请求和响应等信息,提高了API的可读性和易用性。Swagger提供了一套工具和规范,包括:1.SwaggerUI:一个用于展......
  • springboot3.2.3如何集成swagger
    在SpringBoot中集成Swagger可以方便地生成API文档并进行接口测试。要在SpringBoot3.2.3中集成Swagger,你可以按照以下步骤进行操作:1.添加Swagger依赖到pom.xml文件中:点击查看代码<dependency><groupId>io.springfox</groupId><artifactId>springfox-boot-starter<......
  • 报错“Please indicate a valid Swagger or OpenAPI version field”
    报错“PleaseindicateavalidSwaggerorOpenAPIversionfield”报错信息PleaseindicateavalidSwaggerorOpenAPIversionfield.Supportedversionfieldsareswagger:"2.0"andthosethatmatchopenapi:3.0.n(forexample,openapi:3.0.0). 原因分析根......
  • Swagger的配置与使用
    swagger前言学习1.swagger前期准备搜索springfox-swag引入两个jar包,springfox-swagger2和springfox-swagger-ui<!--https://mvnrepository.com/artifact/io.springfox/springfox-swagger2--><dependency><groupId>io.springfox</groupId><a......
  • springboot的日志swagger的配置
    我们导入swagger分为三步一.导入依赖首先我们需要在项目的pom里导入依赖<dependency><groupId>com.github.xiaoymin</groupId><artifactId>knife4j-spring-boot-starter</artifactId><version>3.0......
  • java Swagger 使用汇总
    Swagger1.Swagger简介最流行的api框架restfulapi在线自动生成工具:api文档与api定义同步更新直接运行,可以在线测试api接口支持多种语言:java,php2.官网https://swagger.io在项目中使用swagger需要springboxswagger2ui3.SpringBoot集成Swaggerhttps://mvnreposito......
  • 30.swagger springboot中简单整理
    类似postman接口在线测试API接口哈哈我也不太懂接口还没前后端整合过呢也就是注释你的各种接口吧可有可无先说依赖问题这个是swagger2的依赖当然出现问题了已经更新到了swagger3了参考:https://cloud.tencent.com/developer/article/1936862https://mvnrepos......