SpringBoot整合Swagger,让开发更遍历-LMLPHP

SpringBoot整合Swagger,让开发更遍历


👇


Swagger介绍

Swagger 是一种流行的开源工具集,用于设计、构建、记录和使用 RESTful Web 服务的 API( https://swagger.io/ )。它包含了一系列工具,可以帮助开发人员在开发 API 时更加高效地进行设计、测试和文档编写。下面是 Swagger 的一些主要功能和组件:

  1. API 文档自动生成: Swagger 可以根据代码中的注解自动生成 API 文档。开发人员只需要在代码中添加一些特定的注解,描述 API 的路径、参数、响应等信息,Swagger 就可以自动扫描代码并生成相应的 API 文档。
  2. 可视化 API 文档: Swagger 生成的 API 文档以可视化的形式呈现,包括 API 的路径、HTTP 方法、参数、响应等信息,使开发人员可以清晰地了解 API 的使用方式和接口规范。
  3. 交互式 API 测试工具: Swagger UI 是 Swagger 提供的一个交互式 API 测试工具,可以让开发人员直接在浏览器中测试 API,无需使用额外的工具或插件。通过 Swagger UI,开发人员可以输入参数、发送请求,并查看实际的响应结果,从而快速验证 API 的正确性和可用性。
  4. API 文档的版本控制: Swagger 支持多版本的 API 文档管理,开发人员可以为不同版本的 API 编写不同的文档,并通过 Swagger UI 来方便地切换和查看不同版本的 API。
  5. 集成开发环境支持: Swagger 可以集成到各种常见的集成开发环境(IDE)中,如 Eclipse、IntelliJ IDEA 等,提供了便捷的 API 设计和文档编写功能。
  6. 与多种编程语言和框架的兼容性: Swagger 不仅支持 Java,还支持多种其他编程语言和框架,如 Python、Node.js、Ruby 等,开发人员可以在不同的项目中使用 Swagger 来进行 API 的设计和文档编写。

综合来说,Swagger 提供了一套完整的工具集,帮助开发人员更加高效地设计、构建和文档化 RESTful API,提升了团队协作效率,降低了开发成本,同时也提升了 API 的可读性和可维护性。




SpringBoot整合swagger

1 引入Maven坐标

<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger2</artifactId>
</dependency>
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger-ui</artifactId>
</dependency>



2 创建一个Swagger配置类

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;

/**
 * @author .29.
 * @create 2024-05-13 10:43
 */
@Configuration
@EnableSwagger2
public class SwaggerConfiguration {

    @Bean
    public Docket buildDocket() {
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(buildApiInfo())
                .select()
                // 要扫描的API(Controller)基础包
                .apis(RequestHandlerSelectors.basePackage("com.heima"))
                .paths(PathSelectors.any())
                .build();
    }

    private ApiInfo buildApiInfo() {
        Contact contact = new Contact(".29.","","");
        return new ApiInfoBuilder()
                .title(".29.仿今日头条-平台管理API文档")
                .description(".29.仿今日头条后台api")
                .contact(contact)
                .version("1.0.0").build();
    }
}



3 设置Swagger相关功能的自动配置

# Spring自动配置相关参数(参数通常是一个以逗号分隔的类名列表,每个类名表示一个自动配置类。)
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
  com.heima.common.swagger.SwaggerConfiguration

在Java类中添加Swagger的注解即可生成Swagger接口文档

访问Swagger文档:http://{你的IP}:{你的项目服务端口}/swagger-ui.html

http://localhost:51801/swagger-ui.html



Swagger常用注解介绍

@Api:修饰整个类,描述Controller的作用

@ApiOperation:描述一个类的一个方法,或者说一个接口

@ApiParam:单个参数的描述信息

@ApiModel:用对象来接收参数

@ApiModelProperty:用对象接收参数时,描述对象的一个字段

@ApiResponse:HTTP响应其中1个描述

@ApiResponses:HTTP响应整体描述

@ApiIgnore:使用该注解忽略这个API

@ApiError :发生错误返回的信息

@ApiImplicitParam:一个请求参数

@ApiImplicitParams:多个请求参数的描述信息


@ApiImplicitParam属性:





SpringBoot整合Swagger,让开发更遍历-LMLPHP

05-14 00:13