작성자 김성민
작성 일자 2024년 2월 20일

Swagger란

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 에서 확인할 수 있다.