springboot 集成swagger

简介: springboot 集成swagger

一、SpringBoot依赖和实例代码准备

本实例基于SpringBoot搭建,所需要的配置和依赖很少,下面添加主要的依赖


<dependency>
     <groupId>com.github.xiaoymin</groupId>
     <artifactId>knife4j-spring-boot-starter</artifactId>
     <version>1.9.6</version>
 </dependency>
 <dependency>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-web</artifactId>
 </dependency>


上面已经添加了相关的依赖,下面构建controller包,应对于项目开发,这里准备俩个不同的controller,其中admin标识后台controller接口,user标识前台应用的controller


其中controller里面的内容如下,注意需要有controller相关注解标注


/**
 * @Author chenye
 * @Description
 **/
@RequestMapping("/admin/user")
@RestController
public class AdminUserRestController {
    @GetMapping("/add")
    public ApiResponse add() {
        return ApiResponse.ofSuccess("add");
    }
    @GetMapping("/delete")
    public ApiResponse delete() {
        return ApiResponse.ofSuccess("delete");
    }
    @GetMapping("/update")
    public ApiResponse update() {
        return ApiResponse.ofSuccess("update");
    }
    @GetMapping("/list")
    public ApiResponse list() {
        return ApiResponse.ofSuccess("list");
    }
}

其中ApiResponse就是后端返回前端的响应类Result


二、配置和页面展示

上面已经准备了基本的API接口,下面进行swagger的配置


/**
 * @Author chenye
 * @Description
 **/
@Configuration
@EnableSwagger2
@EnableKnife4j
@Import(BeanValidatorPluginsConfiguration.class)
@ConditionalOnProperty(value = {"knife4j.enable"}, matchIfMissing = true)
public class Swagger2Config {
    /**
     * 前台API分组
     *
     * @return
     */
    @Bean(value = "indexApi")
    public Docket indexApi() {
        return new Docket(DocumentationType.SWAGGER_2)
                .groupName("前台API分组")
                .apiInfo(apiInfo())
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.example.swagger.user"))
                .paths(PathSelectors.any())
                .build();
    }
    /**
     * 后台API分组
     *
     * @return
     */
    @Bean(value = "adminApi")
    public Docket adminApi() {
        return new Docket(DocumentationType.SWAGGER_2)
                .groupName("后台API分组")
                .apiInfo(apiInfo())
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.example.swagger.admin"))
                .paths(PathSelectors.any())
                .build();
    }
    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("swagger-bootstrap-ui RESTful APIs")
                .description("swagger-bootstrap-ui")
                .termsOfServiceUrl("http://localhost:8999/")
                .contact("developer@mail.com")
                .version("1.0")
                .build();
    }
}

上面代码中构建了俩个分组,其中第一个分组主要处理前台部分的API,第二个分组主要处理后台部分的API,apiInfo构建API接口的描述信息


三、测试

swagger-bootstrap-ui默认访问地址是:http://h o s t : {host}:host:{port}/doc.html



四、主要注解

(一)@Api

表示这个类是Swagger的资源,该注解会被Swagger扫描到,该注解可以自定义显示的导航栏标签的名称tag


    @RequestMapping("/admin/category")
    @RestController
    @Api(value = "商品分类接口", tags = "商品分类接口")
    public class AdminCategoryRestController {
    //...
    }



    (二)@ApiOperation

    用在方法上,说明方法的作用

    @ApiOperation注解中的tags属性做更细粒度的接口分类定义,该注解可以用于多个不同的controller的分组


      @RequestMapping("/admin/user")
      @RestController
      public class AdminUserRestController {
          @ApiOperation(value = "添加分类", tags = "商品分类接口")   
          @GetMapping("/add")   
          public ApiResponse add() {      
          return ApiResponse.ofSuccess("add"); 
          }
          }


      上图可以看到在另外的controller中定义的接口方法是可以分属到其他的接口tag下的


      (三)@ApiIgnore

      忽略掉指定的接口和类,在开发中肯定存在一些用于跳转路由的controller,那么其实这部分是不需要把接口呈现给其他开发人员的,所以就可以通过@ApiIgnore注解忽略掉该注解


        @RequestMapping("/admin/user")
        @RestController
        @ApiIgnore
        public class AdminUserRestController {  
        //...
        }
        目录
        相关文章
        |
        缓存 Java API
        微服务——SpringBoot使用归纳——Spring Boot集成 Swagger2 展现在线接口文档——Swagger2 的配置
        本文介绍了在Spring Boot中配置Swagger2的方法。通过创建一个配置类,添加`@Configuration`和`@EnableSwagger2`注解,使用Docket对象定义API文档的详细信息,包括标题、描述、版本和包路径等。配置完成后,访问`localhost:8080/swagger-ui.html`即可查看接口文档。文中还提示了可能因浏览器缓存导致的问题及解决方法。
        1415 0
        微服务——SpringBoot使用归纳——Spring Boot集成 Swagger2 展现在线接口文档——Swagger2 的配置
        |
        JSON Java API
        微服务——SpringBoot使用归纳——Spring Boot集成 Swagger2 展现在线接口文档——Swagger2 的使用
        本文详细介绍了Swagger2的使用方法,包括在Spring Boot项目中的配置与应用。重点讲解了Swagger2中常用的注解,如实体类上的`@ApiModel`和`@ApiModelProperty`,Controller类上的`@Api`、`@ApiOperation`以及参数上的`@ApiParam`等。通过示例代码展示了如何为实体类和接口添加注解,并在页面上生成在线接口文档,实现接口测试。最后总结了Swagger的优势及其在项目开发中的重要性,提供了课程源代码下载链接供学习参考。
        1048 0
        微服务——SpringBoot使用归纳——Spring Boot集成 Swagger2 展现在线接口文档——Swagger2 的使用
        |
        Java Maven 微服务
        微服务——SpringBoot使用归纳——Spring Boot集成 Swagger2 展现在线接口文档——Swagger2 的 maven 依赖
        在项目中使用Swagger2工具时,需导入Maven依赖。尽管官方最高版本为2.8.0,但其展示效果不够理想且稳定性欠佳。实际开发中常用2.2.2版本,因其稳定且界面友好。以下是围绕2.2.2版本的Maven依赖配置,包括`springfox-swagger2`和`springfox-swagger-ui`两个模块。
        673 0
        |
        前端开发 Java API
        微服务——SpringBoot使用归纳——Spring Boot集成 Swagger2 展现在线接口文档—— Swagger 简介
        第6课介绍了在Spring Boot中集成Swagger2以展示在线接口文档的方法。随着前后端分离架构的发展,API文档成为连接前端与后端开发的重要纽带。然而,代码更新频繁导致文档难以同步维护,Swagger2解决了这一问题。通过Swagger,在线API文档不仅方便了接口调用方查看和测试,还支持开发者实时测试接口数据。本文使用Swagger 2.2.2版本,讲解如何在Spring Boot项目中导入并配置Swagger2工具,从而高效管理接口文档。
        498 0
        |
        Java Maven Docker
        gitlab-ci 集成 k3s 部署spring boot 应用
        gitlab-ci 集成 k3s 部署spring boot 应用
        |
        消息中间件 监控 Java
        您是否已集成 Spring Boot 与 ActiveMQ?
        您是否已集成 Spring Boot 与 ActiveMQ?
        621 0
        |
        监控 druid Java
        spring boot 集成配置阿里 Druid监控配置
        spring boot 集成配置阿里 Druid监控配置
        1714 6
        |
        Java 关系型数据库 MySQL
        如何实现Springboot+camunda+mysql的集成
        【7月更文挑战第2天】集成Spring Boot、Camunda和MySQL的简要步骤: 1. 初始化Spring Boot项目,添加Camunda和MySQL驱动依赖。 2. 配置`application.properties`,包括数据库URL、用户名和密码。 3. 设置Camunda引擎属性,指定数据源。 4. 引入流程定义文件(如`.bpmn`)。 5. 创建服务处理流程操作,创建控制器接收请求。 6. Camunda自动在数据库创建表结构。 7. 启动应用,测试流程启动,如通过服务和控制器开始流程实例。 示例代码包括服务类启动流程实例及控制器接口。实际集成需按业务需求调整。
        1292 4
        |
        消息中间件 Java 测试技术
        【RocketMQ系列八】SpringBoot集成RocketMQ-实现普通消息和事务消息
        【RocketMQ系列八】SpringBoot集成RocketMQ-实现普通消息和事务消息
        1775 1
        |
        消息中间件 Java Kafka
        springboot集成kafka
        springboot集成kafka
        981 2