Springboot配置Swagger的实现示例

 更新时间:2023年10月18日 11:42:33   投稿:zx  
Swagger 是一种提高 API 开发和维护效率的工具,它使开发者能够更轻松地构建、测试和文档化 API,本文主要介绍了Springboot配置Swagger的实现示例,感兴趣的可以了解一下

Swagger 是什么

Swagger 是一个用于构建、文档和调用 RESTful Web 服务的强大工具。它提供了以下几方面的好处:

自动生成 API 文档: Swagger 可以自动生成 API 文档,包括接口的描述、输入参数、输出参数、请求示例、响应示例等信息。这使得开发人员、测试人员和客户端开发人员能够轻松地理解和使用 API。

可视化交互界面: Swagger 生成的文档通常包括一个可视化的交互界面,允许用户测试 API 端点而无需编写任何代码。这简化了开发和测试的过程。

标准化接口设计: Swagger 鼓励开发团队使用标准的注解或规范来定义 API,这样可以更容易地创建一致性的 API 设计。这对于多个开发团队协同工作的大型项目特别有用。

客户端代码生成: Swagger 可以生成客户端代码,使客户端开发人员能够使用 API 而无需手动编写 HTTP 请求和数据模型的代码。这减少了代码重复和错误。

减少文档维护成本: Swagger 自动生成的文档与实际代码同步,因此当 API 发生更改时,文档也会相应更新,减少了手动维护文档的工作。

安全集成: Swagger 可以与身份验证和授权机制集成,帮助开发人员更轻松地确保 API 的安全性。

代码注释: 使用 Swagger 注解,可以更清晰地记录 API 的用途、参数、响应等信息。这有助于提高代码的可维护性。

Swagger配置springboot

代码展示

添加 Maven 依赖:首先,在你的 Spring Boot 项目的 pom.xml 文件中,添加 Swagger2 依赖。以下是一个示例:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.5.6</version> <!-- 使用正确的版本号 -->
    </parent>
    <groupId>com.example</groupId>
    <artifactId>swaggerdemo01</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>swaggerdemo01</name>
    <description>Demo project for Spring Boot</description>
    <properties>
        <java.version>8</java.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>



        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.9.2</version>
        </dependency>
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>2.9.2</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>com.vaadin.external.google</groupId>
            <artifactId>android-json</artifactId>
            <version>0.0.20131108.vaadin1</version>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>2.0.32</version>
            <scope>compile</scope>
        </dependency>


    </dependencies>


</project>

创建 Swagger 配置类:在你的项目中创建一个配置类,通常命名为 SwaggerConfig,并添加 @Configuration 注解。

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.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

@Configuration
@EnableSwagger2
public class SwaggerConfig {
    @Bean
    public Docket createRestApi() {
        return new Docket(DocumentationType.SWAGGER_2)
                .pathMapping("/")
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.example.swaggerdemo.controller"))
                .paths(PathSelectors.any())
                .build().apiInfo(new ApiInfoBuilder()
                        .title("雷达数据修正算法相关接口")
                        .description("雷达数据修正算法逻辑展示")
                        .version("9.0")
                        .contact(new Contact("z s","blog.git.net"," "))
                        .license("The Apache License")
                        .licenseUrl("http://www.s t.com/")
                        .build());
    }
}

启用 Swagger:在你的 Spring Boot 应用程序主类上添加 @EnableSwagger2 注解。

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

@SpringBootApplication
@EnableSwagger2
public class Swaggerdemo01Application {

    public static void main(String[] args) {
        SpringApplication.run(Swaggerdemo01Application.class, args);
    }

}

编写 API 文档注释:在你的控制器类和方法上使用 Swagger 注解编写接口文档的注释,包括参数、响应等信息。示例:

import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@Api(tags = "示例控制器")
public class AccountController {

    @GetMapping("/hello")
    @ApiOperation("获取欢迎消息")
    public String hello() {
        return "Hello, World!";
    }
}

访问 Swagger UI:启动你的应用程序后,你可以通过浏览器访问 Swagger UI,通常在 http://localhost:8080/swagger-ui.html。

这些步骤将帮助你在 Spring Boot 项目中整合 Swagger,以便生成和展示 API 文档。你可以根据你的项目需求和喜好进行更多的配置和定制。

总结

总之,Swagger 是一种提高 API 开发和维护效率的工具,它使开发者能够更轻松地构建、测试和文档化 API,并提供了可视化的交互界面,以改进开发流程和加速 API 的采用。

到此这篇关于Springboot配置Swagger的实现示例的文章就介绍到这了,更多相关springboot配置swagger内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • java 单例模式(懒汉式与饿汉式)

    java 单例模式(懒汉式与饿汉式)

    这篇文章主要介绍了java 单例模式的相关资料,这里对懒汉式与饿汉式都做了实例介绍,需要的朋友可以参考下
    2017-07-07
  • mybatis框架order by作为参数传入时失效的解决

    mybatis框架order by作为参数传入时失效的解决

    这篇文章主要介绍了mybatis框架order by作为参数传入时失效的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-06-06
  • 解决OkHttp接收gzip压缩数据返回乱码问题

    解决OkHttp接收gzip压缩数据返回乱码问题

    这篇文章主要介绍了解决OkHttp接收gzip压缩数据返回乱码问题,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-06-06
  • Java基础学习之关键字和变量数据类型的那些事

    Java基础学习之关键字和变量数据类型的那些事

    变量就是系统为程序分配的一块内存单元,用来存储各种类型的数据,下面这篇文章主要给大家介绍了关于Java基础学习之关键字和变量数据类型的那些事,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-07-07
  • java数据结构基础:绪论

    java数据结构基础:绪论

    这篇文章主要介绍了Java的数据解构基础,希望对广大的程序爱好者有所帮助,同时祝大家有一个好成绩,需要的朋友可以参考下,希望能给你带来帮助
    2021-07-07
  • java按指定编码写入和读取文件内容的类分享

    java按指定编码写入和读取文件内容的类分享

    这篇文章主要介绍了java按指定编码写入和读取文件内容的类,需要的朋友可以参考下
    2014-02-02
  • java判断Long类型的方法和实例代码

    java判断Long类型的方法和实例代码

    在本篇文章里小编给大家整理的是关于java判断Long类型的方法和实例代码,对此有需要的朋友们跟着学习参考下。
    2020-02-02
  • java动态线程池的简单实现思路

    java动态线程池的简单实现思路

    本文主要介绍了java 动态线程池的简单实现思路,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-06-06
  • springboot配置ldaps连接方式

    springboot配置ldaps连接方式

    这篇文章主要介绍了springboot配置ldaps连接方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-05-05
  • Java切面(Aspect)的多种实现方式

    Java切面(Aspect)的多种实现方式

    这篇文章主要给大家介绍了关于Java切面(Aspect)的多种实现方式,在Java开发中切面(Aspect)是一种常用的编程方式,用于实现横切关注点(cross-cutting concern),需要的朋友可以参考下
    2023-08-08

最新评论