【从入门到精通】Swagger API文档全攻略教程

发布时间:2025-06-08 02:37:48

引言

在当今的软件开辟范畴,API(利用顺序编程接口)已成为连接前后端、差别体系间的重要桥梁。为了确保API的正确性跟易用性,API文档的编写显得尤为重要。Swagger作为一个开源的API文档跟测试东西,可能帮助开辟者轻松创建、保护跟测试API文档。本文将带你从入门到粗通,单方面懂得Swagger的利用。

一、Swagger简介

Swagger是一个用于计划跟构建API的框架,它供给了一套完全的API标准,使得开辟者可能计划、构建、记录跟利用REST API。Swagger的核心是一个被称为OpenAPI Specification(OAS)的JSON或YAML文件,它定义了API的构造、参数、呼应等信息。

二、Swagger安装与设置

2.1 在Spring Boot项目中引入依附

<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>

2.2 创建Swagger设置类

@Configuration
@EnableSwagger2
public class SwaggerConfig {
    @Bean
    public Docket apiDocket() {
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .select()
                .apis(RequestHandlerSelectors.any())
                .paths(PathSelectors.any())
                .build();
    }

    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("API文档")
                .description("Swagger API文档示例")
                .version("1.0.0")
                .build();
    }
}

三、Swagger注解

Swagger供给了一系列注解,用于定义API模型、参数、呼应等信息。

3.1 类级其余注解

  • @Api:用于定义API的基本信息,如标题、描述等。
  • @ApiResponse:用于定义API的呼应信息。
  • @ApiResponses:用于定义一组API的呼应信息。

3.2 方法级其余注解

  • @ApiOperation:用于定义API方法的基本信息,如操纵称号、描述等。
  • @ApiParam:用于定义API方法的参数信息。
  • @ApiResponse:用于定义API方法的呼应信息。

四、Swagger UI

Swagger UI是一个静态生成的HTML文件,可能将Swagger标准文件衬着成一个美不雅易用的API文档网页。在Spring Boot项目中,只有拜访http://localhost:8080/swagger-ui.html即可检查API文档并停止测试。

五、Swagger高等功能

5.1 数据模仿

Swagger支撑数据模仿功能,可能模仿API方法的呼应数据。

@ApiOperation(value = "获取用户信息", notes = "根据用户ID获取用户信息")
@ApiResponses(value = {
        @ApiResponse(code = 200, message = "成功", response = User.class),
        @ApiResponse(code = 400, message = "恳求错误")
})
@GetMapping("/user/{id}")
public ResponseEntity<User> getUser(@ApiParam(value = "用户ID", required = true) @PathVariable("id") Long id) {
    // 模仿数据
    User user = new User();
    user.setId(id);
    user.setName("张三");
    user.setAge(18);
    return ResponseEntity.ok(user);
}

5.2 文档国际化

Swagger支撑文档国际化功能,可能根据用户的言语偏好展示差其余文档。

@ApiInfo(
        title = "API文档",
        description = "Swagger API文档示例",
        version = "1.0.0",
        contact = new ApiContact("张三", "zhangsan@example.com", "http://www.example.com")
)

六、总结

Swagger是一款功能富强的API文档跟测试东西,可能帮助开辟者轻松创建、保护跟测试API文档。经由过程本文的介绍,信赖你曾经对Swagger有了单方面的认识。在现实项目中,你可能根据须要机动应用Swagger的各种功能,进步API开辟效力。