안녕하세요. 오랜만에 인사드립니다.
개인적으로 많은 일들이 있던 2023년이라서 너무나도 오랫동안 블로그를 못쓰고 있었네요. 자세한 이야기는 따로 썰을 풀어서 글을 써볼까 합니다 ㅎㅎ
일단 이 글의 목적은 개발을 진행하면서 API 문서로 swagger를 많이 사용하고 있는데, Spring 3버전 이상부터는 기존에 사용하던 springfox 가 아닌 springdoc-openapi-ui 라이브러리를 사용해야 한다는 내용을 소개하려고 합니다!
"swagger 사용법" 이라고 검색하게 되면 대부분이 springfox를 이용한 swagger 사용법들이 나오고 있어 저도 그렇게 사용하는줄 알았는데, 이제는 springdoc을 사용하여 swagger를 써야한다는 걸 알게되었는데요.
이유는 springfox는 2020년 7월 14일에 3.0.0 버전을 마지막으로 더이상 업데이트가 되지 않는다는 것을 알 수 있습니다.
(참고: https://github.com/springfox/springfox)
그에 비해 springdoc-openapi 의 경우 제가 작성하는 날짜를 기준(23년12월27일)으로 3주전까지 업데이트가 되고 있습니다.
(참고: https://github.com/springdoc/springdoc-openapi)
그러기에 Spring 버전이 올라가더라도 적용이 가능한 springdoc-openapi 사용이 필수적이라고 보여집니다.
간단한 사용법을 설명드리자면 먼저 해당 라이브러리를 적용해야합니다.
Gradle / Maven 에 dependency 를 추가하시면 됩니다.
공식 springdoc Github 에서 공식 문서로 제공해주고 있는데
- Gradle
## implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.3.0'
- Maven
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
<version>2.3.0</version>
</dependency>
으로 추가하여 사용하실 수 있습니다.
그리고 SwaggerConfig.java 라는 파일을 생성하여 설정 할 수도 있습니다.
import io.swagger.v3.oas.models.Components;
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 openAPI(){
Info info = new Info()
.title("Spring Boot 를 이용한 API 확인 Swagger")
.version("0.1")
.description("API 문서입니다. \n Demo 버전으로 들고다니는 용도입니다.");
return new OpenAPI()
.components(new Components())
.info(info);
}
}
위와 같은 형식으로 파일을 생성하여 사용하시면
url에 http://localhost:사용자port/swagger-ui/index.html 를 입력하여 들어가면
이런 화면이 나타나며 swagger를 사용하실 수 있습니다.
2버전과는 조금 달라진 ui가 있지만 크게 차이가 없기 때문에 사용하시는데 어려움은 없으실테고,
Spring 3 버전 이후 부터는 springfox가 아닌 springdoc-openapi 라이브러리를 사용하시는걸 잊지 마시고 헷갈리지 않으셨으면 합니다.
감사합니다 :)
'Language > Java' 카테고리의 다른 글
[JPA] 공통 Entity 에 사용되는 @MappedSuperClass 과 상속 관계 (1) | 2024.01.03 |
---|---|
[Java] Null 체크를 위한 방법 (1) | 2022.03.31 |