| 작성자 | 김성민 |
|---|---|
| 작성 일자 | 2024년 2월 20일 |
Swagger란 개발한 Rest API를 편리하게 문서화 해주고, 이를 통해서 관리 및 제 3의 사용자가 편리하게 API를 호출해보고 테스트 할 수 있는 프로젝트이다.
주로 백엔드 개발자가 프론트 개발자에게 api 문서를 전달할 때 swagger를 많이 사용한다고 한다.
주의할 점은 운영 환경과 같은 외부에 노출되면 안되는 곳에서 사용할 땐 주의 해야 한다.
기존 Spring Boot 2.x.x 버전에서는 springfox-boot-starter 라이브러리를 사용하지만
2024.02.20 기준 LTS인 Spring Boot 3.x.x 에서는 JDK 17을 사용함으로써 springdoc-openapi 라이브러리를 사용한다.
swagger는 주로 컨트롤러나 엔티티에 부여한다고 한다.
다음과 같이 라이브러리를 추가할 수 있다.
gradle
// <https://mvnrepository.com/artifact/org.springdoc/springdoc-openapi-starter-webmvc-ui> implementation group: 'org.springdoc', name: 'springdoc-openapi-starter-webmvc-ui', version: '2.3.0'
maven
<dependency> <groupId>org.springdoc</groupId> <artifactId>springdoc-openapi-starter-webmvc-api</artifactId> <version>2.3.0</version> </dependency>
다음으로 Config를 작성한다.
@Configurationpublic class SwaggerConfig { @Bean public GroupedOpenApi openAPI() { return GroupedOpenApi.builder().group("user") .addOpenApiCustomizer(openApi -> openApi.info( new Info() .title("Swagger Test API") .description("기본적인 CRUD를 테스트 합니다.") .version("1.0.0")) ).build(); }
그러면 swagger-ui에서 이런 화면을 볼 수 있다.

Untitled
해당 ui는
hostAddress:port/swagger-ui/index.html 에서 확인할 수 있다.