Spring REST API 프로젝트에서 API 명세를 시각화하고,
자동 문서화 + 실시간 테스트를 지원하는 Swagger의 실습 내용을 정리합니다.
@RestController@GetMapping, @PostMapping, @PutMapping, @DeleteMapping@RequestBody, @PathVariable, @ResponseBodyResponseEntity→ 위 어노테이션들은 Spring REST 기본 구성 요소로, API 엔드포인트를 만들고 응답을 정의하는 데 사용됩니다.
| 기능 | 설명 |
|---|---|
| 시각적 표현 | Swagger UI로 구조와 작동 방식을 쉽게 파악 가능 |
| 실시간 테스트 | API를 브라우저에서 직접 테스트 가능 |
| 문서 자동화 | Java 코드 기반으로 문서 자동 생성 및 갱신 가능 |
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-boot-starter</artifactId>
<version>3.0.0</version>
</dependency>
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
<version>2.1.0</version>
</dependency>
@Configuration
public class SwaggerConfig {
@Bean
public OpenAPI customOpenAPI() {
return new OpenAPI()
.info(new Info()
.title("My API 문서")
.version("v1")
.description("REST API 문서입니다."));
}
}
| 어노테이션 | 설명 |
|---|---|
| @Operation | 각 API 설명 추가 |
| @Parameter | 요청 파라미터 설명 |
| @Schema | DTO 필드의 설명 추가 |
| @Tag | API 그룹화 |
| @ApiResponse | 응답 설명 |
예시:
@Operation(summary = "회원 목록 조회", description = "전체 회원 정보를 조회합니다.")
@GetMapping("/users")
public ResponseEntity<List<User>> getUsers() {
...
}