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 {  
        //...
        }
        目录
        相关文章
        |
        1月前
        |
        Java API 开发者
        在Spring Boot中集成Swagger API文档
        在Spring Boot中集成Swagger API文档
        |
        4天前
        |
        Java API Spring
        springboot集成swagger
        这篇文章介绍了如何在Spring Boot项目中集成Swagger 2.10.0来生成API文档,包括添加依赖、编写配置类、创建接口文档,并使用Knife4j美化Swagger界面。
        |
        23天前
        |
        监控 druid Java
        spring boot 集成配置阿里 Druid监控配置
        spring boot 集成配置阿里 Druid监控配置
        121 6
        |
        20天前
        |
        JSON 缓存 Java
        Spring Boot集成 Swagger2 展现在线接口文档
        本节课详细分析了 Swagger 的优点,以及 Spring Boot 如何集成 Swagger2,包括配置,相关注解的讲解,涉及到了实体类和接口类,以及如何使用。最后通过页面测试,体验了 Swagger 的强大之处,基本上是每个项目组中必备的工具之一,所以要掌握该工具的使用,也不难。
        |
        7天前
        |
        Java
        SpringBoot 配置 Swagger
        SpringBoot 配置 Swagger
        15 0
        |
        1月前
        |
        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. 启动应用,测试流程启动,如通过服务和控制器开始流程实例。 示例代码包括服务类启动流程实例及控制器接口。实际集成需按业务需求调整。
        139 4
        |
        1月前
        |
        消息中间件 Java Kafka
        Spring Boot与Apache Kafka Streams的集成
        Spring Boot与Apache Kafka Streams的集成
        |
        1月前
        |
        消息中间件 Java 测试技术
        【RocketMQ系列八】SpringBoot集成RocketMQ-实现普通消息和事务消息
        【RocketMQ系列八】SpringBoot集成RocketMQ-实现普通消息和事务消息
        112 1
        |
        2月前
        |
        消息中间件 Java Kafka
        springboot集成kafka
        springboot集成kafka
        93 2
        |
        2月前
        |
        监控 前端开发 Java
        五分钟后,你将学会在SpringBoot项目中如何集成CAT调用链
        五分钟后,你将学会在SpringBoot项目中如何集成CAT调用链