springboot集成swagger

简介: 这篇文章介绍了如何在Spring Boot项目中集成Swagger 2.10.0来生成API文档,包括添加依赖、编写配置类、创建接口文档,并使用Knife4j美化Swagger界面。

文章目录

    • 1、在pom中导入依赖
    • 2、编写swagger配置类
    • 3、编写接口文档
    • 2、使用knife4j美化swagger

1、在pom中导入依赖

<!--        swagger实现接口文档-->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.8.0</version>
        </dependency>

<!--        swagger-ui-->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>2.8.0</version>
        </dependency>

2、编写swagger配置类

package com.zheng.yu;


import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

/**
 * 放在与application.java同级目录下
 * @Configuration 让spring来加载该类配置
 * @EnableSwagger2 来启用Swagger2
 */

@Configuration
@EnableSwagger2
public class Swagger2 {

    @Bean
    public Docket createRestApi() {

        /**
         * 创建API应用
         * apiInfo()增加API相关信息
         * 通过select()函数返回一个ApiSelectorBuilder实例,用来控制哪些接口暴漏给Swagger来展现
         * 本例采用指定扫描的包路径来定义指定要建立API的目录
         */

        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.zheng.yu.controller"))
                .paths(PathSelectors.any()) // 可以根据url路径设置哪些请求加入文档,忽略哪些请求
                .build();
    }

    /**
     *创建该API的基本信息(基本信息展示在文档页面中)
     * 访问地址:http://项目实际地址/swagger-ui.html
     */
    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("红灯笼网上汽车租赁系统") //设置文档的标题
                .description("红灯笼网上汽车租赁系统的接口设计") // 设置文档的描述
                .version("1.0.0") // 设置文档的版本信息-> 1.0.0 Version information
                .termsOfServiceUrl("http://8282/") // 设置文档的License信息->1.3 License information
                .build();
    }
}
  • @Configuration 让spring来加载该类配置
  • @EnableSwagger2 来启用Swagger2
  • apiInfo()增加API相关信息
  • 通过select()函数返回一个ApiSelectorBuilder实例,用来控制哪些接口暴漏给Swagger来展现
  • apis(RequestHandlerSelectors.basePackage(“com.zheng.yu.controller”))配置包扫描路径。swagger会扫描包下所有Controller定义的API,产生文档内容,如果不想生成API,则使用注解@Apilgnore

3、编写接口文档

//登录
    @ApiOperation(value = "用户登录系统")
    @ApiImplicitParam(name="user" ,value = "登录用户的信息")
    @PostMapping("/login")
    public Map<String,Object> save(@RequestBody User user){

        HashMap map = new HashMap();
        HashMap map1 = new HashMap();
        map.put("name",user.getName());
        map.put("password",user.getPassword());
        User user1=  userService.login(map);
        map1.put("user",user1);
        map1.put("success","success");
        return map1;


    }

    @ApiOperation(value = "查询所有用户",notes = "查询所有的用户")
//    @ApiImplicitParam(name = "word", value = "单词", paramType = "query", required = true, dataType = "String")
    @GetMapping("/alluser")
    public List<User> findAll(){
        return userService.userList();
    }
  • @APi:描述类/接口的主要用途
  • @ApiOperation:描述方法用途,给API增加说明
  • @ApiImplicitParam:描述方法的参数,给参数增加说明
  • @ApiImplicitParams:描述方法的参数(Multi-Params),给参数增加说明
  • @Apilgnore:忽略某类/方法/参数的文档。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

2、使用knife4j美化swagger

https://doc.xiaominfo.com/

在pom文件中加入

<dependency>
 <groupId>io.springfox</groupId>
 <artifactId>springfox-swagger2</artifactId>
 <version>2.9.2</version>
</dependency>

访问的形式:
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

相关文章
|
7月前
|
JSON Java API
微服务——SpringBoot使用归纳——Spring Boot集成 Swagger2 展现在线接口文档——Swagger2 的使用
本文详细介绍了Swagger2的使用方法,包括在Spring Boot项目中的配置与应用。重点讲解了Swagger2中常用的注解,如实体类上的`@ApiModel`和`@ApiModelProperty`,Controller类上的`@Api`、`@ApiOperation`以及参数上的`@ApiParam`等。通过示例代码展示了如何为实体类和接口添加注解,并在页面上生成在线接口文档,实现接口测试。最后总结了Swagger的优势及其在项目开发中的重要性,提供了课程源代码下载链接供学习参考。
411 0
微服务——SpringBoot使用归纳——Spring Boot集成 Swagger2 展现在线接口文档——Swagger2 的使用
|
7月前
|
缓存 Java API
微服务——SpringBoot使用归纳——Spring Boot集成 Swagger2 展现在线接口文档——Swagger2 的配置
本文介绍了在Spring Boot中配置Swagger2的方法。通过创建一个配置类,添加`@Configuration`和`@EnableSwagger2`注解,使用Docket对象定义API文档的详细信息,包括标题、描述、版本和包路径等。配置完成后,访问`localhost:8080/swagger-ui.html`即可查看接口文档。文中还提示了可能因浏览器缓存导致的问题及解决方法。
734 0
微服务——SpringBoot使用归纳——Spring Boot集成 Swagger2 展现在线接口文档——Swagger2 的配置
|
7月前
|
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`两个模块。
220 0
|
7月前
|
前端开发 Java API
微服务——SpringBoot使用归纳——Spring Boot集成 Swagger2 展现在线接口文档—— Swagger 简介
第6课介绍了在Spring Boot中集成Swagger2以展示在线接口文档的方法。随着前后端分离架构的发展,API文档成为连接前端与后端开发的重要纽带。然而,代码更新频繁导致文档难以同步维护,Swagger2解决了这一问题。通过Swagger,在线API文档不仅方便了接口调用方查看和测试,还支持开发者实时测试接口数据。本文使用Swagger 2.2.2版本,讲解如何在Spring Boot项目中导入并配置Swagger2工具,从而高效管理接口文档。
229 0
|
11月前
|
Java 测试技术 API
详解Swagger:Spring Boot中的API文档生成与测试工具
详解Swagger:Spring Boot中的API文档生成与测试工具
707 4
|
12月前
|
前端开发 Java 程序员
springboot 学习十五:Spring Boot 优雅的集成Swagger2、Knife4j
这篇文章是关于如何在Spring Boot项目中集成Swagger2和Knife4j来生成和美化API接口文档的详细教程。
1769 1
|
Java API 开发者
在Spring Boot中集成Swagger API文档
在Spring Boot中集成Swagger API文档
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‘问题的解决
|
JSON 缓存 Java
Spring Boot集成 Swagger2 展现在线接口文档
本节课详细分析了 Swagger 的优点,以及 Spring Boot 如何集成 Swagger2,包括配置,相关注解的讲解,涉及到了实体类和接口类,以及如何使用。最后通过页面测试,体验了 Swagger 的强大之处,基本上是每个项目组中必备的工具之一,所以要掌握该工具的使用,也不难。
|
安全 Java API
技术笔记:SpringBoot集成Swagger3.0(详细)
技术笔记:SpringBoot集成Swagger3.0(详细)