Final Project - Random Navi - Swagger적용하기
https://velog.io/@kjgi73k/Springboot3%EC%97%90-Swagger3%EC%A0%81%EC%9A%A9%ED%95%98%EA%B8%B0
Springboot 3.x에 Swagger를 적용시켜보자!
Springboot 3.0.1에서 Swagger 3.0.0을 적용 중 발생하는 에러들을 해결해 보자
velog.io
위의 블로그 내용은 현재 1번째로 직면하고 있는 문제가 그대로 적혀 있어서
이렇게 빌드 내용을 적어주고 Application을 실행했는데
//swagger
implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.0.2'
이런 에러가 떴다.
맨 밑에는 Unable to determine Dialect without JDBC metadata 에러가 있었다.
생각해보니 데이터베이스 연결을 안했던게 떠올랐다.
연결하고 localhost:8080/swagger-ui/index.html 로 들어가니
잘된다.
그런데 설정을 하지 않은 즉 @Tag를 하지 않은 Controller가 나왔다
어디서 나온건지... 한참 찾다가 SwaggerConfig 파일을 만들어주고 아래 처럼 내용을 작성했는데도
여전히 변함이 없었다.
@Bean
public OpenAPI openAPI() {
Info info = new Info()
.title("경로 추천 네비게이션")
.version("1.0")
.description("API 명세서");
return new OpenAPI()
.components(new Components())
.info(info);
}
아래 사이트 참고해서 해보고
https://recordsoflife.tistory.com/349
Spring Boot의 Swagger 문서에서 끝점 숨기기
Java 에코 시스템에서 몇 년간의 경험이 있고 그 경험을 커뮤니티와 공유하고 (물론 작업에 대한 대가를받는 데) 관심이 있다면 "Write for Us"페이지를 참조하십시오 . 건배, Eugen 1. 개요 Swagger 문서
recordsoflife.tistory.com
여러가지 방법을 시도 해봤는데
결론은 Config 파일을 다시 재 작성해서 해결했다.
@Configuration
public class SwaggerConfig {
@Bean
public GroupedOpenApi myApi() {
return GroupedOpenApi.builder()
.group("경로 추천 api") // 컨트롤러 그룹의 이름
.pathsToMatch("/api/**") // 해당 패턴을 사용하여 컨트롤러를 그룹화
.build();
}
작성하고 싶은 path를 그룹화해서 명시해주면 해결되는 문제였다.
그리고 그 과정에서 빌드도 다시 버전을 바꿔서 빌드 했다.
//swagger 빌드 변경
implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.1.0' // 최신 버전으로 변경
원하는 대로 결과가 잘 나와서 만족스럽다
쉬운듯 보였으나 처음해보니 막상 이런저런 문제가 발생해서 2일 정도 걸린것 같다.