SpringDoc OpenAPI đọc controller + DTO Spring Boot 3 và tự sinh OpenAPI 3 spec + Swagger UI — không cần viết YAML tay, không cần annotation rườm rà như Springfox (đã ngưng phát triển).
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
<version>2.7.0</version>
</dependency>Mặc định mở luôn:
- GET /v3/api-docs → spec JSON
- GET /swagger-ui.html → UI tương tác
Metadata + JWT security chỉnh qua @Bean OpenAPI. Group endpoint theo module qua GroupedOpenApi. Annotation @Operation, @ApiResponse trên controller method để mô tả chi tiết.
Production: tắt swagger-ui ngoài dev (springdoc.swagger-ui.enabled=false), hoặc đặt sau auth gateway. CI có thể chạy openapi-generator sinh client SDK từ spec — frontend/mobile dùng types tự sinh, hết "API contract drift".
SpringDoc OpenAPI reads Spring Boot 3 controllers and DTOs to auto-generate an OpenAPI 3 spec + Swagger UI — no hand-written YAML, no heavy annotations like Springfox (no longer maintained).
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
<version>2.7.0</version>
</dependency>Out of the box:
- GET /v3/api-docs → JSON spec
- GET /swagger-ui.html → interactive UI
Metadata + JWT security configured via @Bean OpenAPI. Group endpoints per module via GroupedOpenApi. Use @Operation, @ApiResponse on controller methods for richer descriptions.
Production: disable swagger-ui outside dev (springdoc.swagger-ui.enabled=false), or place it behind an auth gateway. CI can run openapi-generator to produce client SDKs from the spec — frontend/mobile use generated types, eliminating "API contract drift".