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月前
        |
        SQL JSON Java
        mybatis使用三:springboot整合mybatis,使用PageHelper 进行分页操作,并整合swagger2。使用正规的开发模式:定义统一的数据返回格式和请求模块
        这篇文章介绍了如何在Spring Boot项目中整合MyBatis和PageHelper进行分页操作,并且集成Swagger2来生成API文档,同时定义了统一的数据返回格式和请求模块。
        52 1
        mybatis使用三:springboot整合mybatis,使用PageHelper 进行分页操作,并整合swagger2。使用正规的开发模式:定义统一的数据返回格式和请求模块
        |
        1月前
        |
        前端开发 Java 程序员
        springboot 学习十五:Spring Boot 优雅的集成Swagger2、Knife4j
        这篇文章是关于如何在Spring Boot项目中集成Swagger2和Knife4j来生成和美化API接口文档的详细教程。
        84 1
        |
        2月前
        |
        开发工具 Python
        django之drf集成swagger
        django之drf集成swagger
        |
        2月前
        |
        前端开发 Java Spring
        【非降版本解决】高版本Spring boot Swagger 报错解决方案
        【非降版本解决】高版本Spring boot Swagger 报错解决方案
        |
        2月前
        |
        Java Spring
        springboot 集成 swagger 2.x 和 3.0 以及 Failed to start bean ‘documentationPluginsBootstrapper‘问题的解决
        本文介绍了如何在Spring Boot项目中集成Swagger 2.x和3.0版本,并提供了解决Swagger在Spring Boot中启动失败问题“Failed to start bean ‘documentationPluginsBootstrapper’; nested exception is java.lang.NullPointerEx”的方法,包括配置yml文件和Spring Boot版本的降级。
        springboot 集成 swagger 2.x 和 3.0 以及 Failed to start bean ‘documentationPluginsBootstrapper‘问题的解决
        |
        3月前
        |
        Java API Spring
        springboot集成swagger
        这篇文章介绍了如何在Spring Boot项目中集成Swagger 2.10.0来生成API文档,包括添加依赖、编写配置类、创建接口文档,并使用Knife4j美化Swagger界面。
        |
        4月前
        |
        监控 druid Java
        spring boot 集成配置阿里 Druid监控配置
        spring boot 集成配置阿里 Druid监控配置
        287 6
        |
        4月前
        |
        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. 启动应用,测试流程启动,如通过服务和控制器开始流程实例。 示例代码包括服务类启动流程实例及控制器接口。实际集成需按业务需求调整。
        363 4
        |
        4月前
        |
        消息中间件 Java 测试技术
        【RocketMQ系列八】SpringBoot集成RocketMQ-实现普通消息和事务消息
        【RocketMQ系列八】SpringBoot集成RocketMQ-实现普通消息和事务消息
        317 1
        |
        5月前
        |
        消息中间件 Java Kafka
        springboot集成kafka
        springboot集成kafka
        168 2

        热门文章

        最新文章