SpringDoc接口文档
1 2 3 4 5 6
| <dependency> <groupId>org.springdoc</groupId> <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId> <version>2.8.16</version> </dependency>
|
配置 application.yaml
1 2 3 4 5 6 7
|
springdoc: api-docs: enabled: true swagger-ui: enabled: true
|
Swagger 配置类
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| import io.swagger.v3.oas.models.OpenAPI; import io.swagger.v3.oas.models.info.Info; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration;
@Configuration public class SwaggerConfig { @Bean public OpenAPI customOpenAPI() { return new OpenAPI() .info(new Info() .title("Spring Boot 3 Swagger Demo") .version("1.0") .description("API 文档示例")); } }
|
实体类注解(OpenAPI 3 规范)
使用 @Schema 注解描述实体类和字段,支持字段级描述和示例值。
1 2 3 4 5 6 7 8 9 10 11 12
| import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data;
@Data @Schema(description = "用户实体") public class User { @Schema(description = "用户ID", example = "1") private Long id; @Schema(description = "用户名", example = "john_doe") private String username; }
|
控制器注解(OpenAPI 3 规范)
通过 @Tag 和 @Operation 注解描述接口分组和操作细节。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import org.springframework.web.bind.annotation.*;
@RestController @RequestMapping("/api/users") @Tag(name = "用户管理", description = "用户相关接口") public class UserController {
@GetMapping("/{id}") @Operation(summary = "获取用户信息", description = "根据ID查询用户") public User getUser(@PathVariable Long id) { return new User(); }
@PostMapping @Operation(summary = "创建用户", description = "新增用户记录") public User createUser(@RequestBody User user) { return user; } }
|
访问 Swagger UI
Swagger UI 界面:http://localhost:8080/swagger-ui/index.html
OpenAPI JSON:http://localhost:8080/v3/api-docs