본문 바로가기
  • 개발하는 곰돌이

swagger8

[Swagger] Spring Boot 3.0.X 버전에서 Swagger UI 접속 시 404 에러가 발생할 때 목차 문제의 배경 JPA 공부를 위해 스프링부트 프로젝트를 생성할 때 새로운 버전을 사용해보자는 마음으로 스프링부트 3.0.3 버전으로 프로젝트를 생성했다. 그리고 평소처럼 Springdoc의 스웨거 UI를 사용해서 API를 호출하려고 했는데 스웨거 문서에 접속하니까 404 에러가 반겨줬다. 그래들에 의존성은 기존처럼 implementation 'org.springdoc:springdoc-openapi-ui:1.6.11'를 추가해놨고, 아래와 같이 SwaggerConfig도 설정해놨고 애플리케이션 설정도 잡아놨는데 404 에러가 떠서 무엇이 문제인지 도저히 감을 잡지 못하고 있었다. 문제 해결 물론 JUnit5로 테스트를 하면 JPA를 테스트 해보는 것에 문제는 없지만, 실제로 API를 호출해보면서 JP.. 2023. 3. 7.
[Spring Boot] Springdoc 라이브러리를 통한 Swagger 적용 목차 기본 환경 IntelliJ Ultimate 2022.3 Spring Boot 2.7.7 Kotlin 1.7.21(JDK 11) Springdoc Openapi UI 1.6.11 Springdoc은 무엇인가? 이전에 Spring Boot 프로젝트에 Swagger UI를 적용하는 포스트를 작성한 적이 있다. 해당 포스트를 작성할 당시에는 Swagger UI를 제공하는 라이브러리가 Springfox만 존재하는 줄 알았는데, Springdoc이라는 라이브러리에서도 Swagger UI를 제공한다는 사실을 알게되어 이 포스트를 작성하게 되었다. 최근에는 Springdoc을 사용하는 것이 더 선호된다고 한다. Springfox의 경우에는 2020년 7월 이후로 업데이트가 중단된 반면, Springdoc은 최근까.. 2023. 1. 15.
[Spring Boot] Scheduler를 사용하여 정해진 시간마다 메소드 실행시키기 목차 기본 환경 IntelliJ Ultimate 2022.3 Spring Boot 2.7.6 Kotlin 1.7.21(JDK 11) MySQL 8 Swagger 3.0.0 MyBaitis 2.3.0 Spring Boot 프로젝트에 Swagger 3.0.0을 적용하는 방법, MyBatis 설정 방법은 아래 포스트를 참고하면 된다. [Spring Boot] Kotlin 기반 Spring Boot 프로젝트에 Swagger 3.0.0 적용하기 [Oracle] Spring Boot 프로젝트에서 Mybatis 세팅하기 with Kotlin 개요 프로젝트를 진행하다보면 정해진 시간마다 특정 동작을 수행해야할 때가 있다. 이 때 Spring Boot에서 제공하는 Scheduler를 사용하면 손쉽게 정해진 시간에 특정 .. 2022. 12. 30.
[Swagger] 스웨거 페이지 접속 시 Failed to load API definition. 에러 해결 API 테스트를 위해 스웨거를 이용하던 중에 위와 같은 에러가 뜨면서 인덱스 페이지에 접속되지 않는 문제가 발생했다. Fetch error undefined http://localhost:8080/v2/api-docs라는데 /v2/api-docs가 정의되지 않아서 불러올 수 없다고 한다. 실제로 해당 url로 접속해보면 에러 페이지가 반겨주는 것을 볼 수 있다. NPE가 떴는데 파라미터의 설정값 중에 null있다는 것 같다. 이랬던 파라미터 설정을 이렇게 paramType에 query를 설정해줬다. 정상적으로 실행된다. 2022. 12. 29.
[Spring Boot] Kotlin 기반 Spring Boot 프로젝트에서 파일 업로드하기 목차 기본 환경 IntelliJ Ultimate 2022.3 Spring Boot 2.7.6 Kotlin 1.7.21(JDK 11) Oracle 11g Swagger 3.0.0 mybaitis 2.3.0 Spring Boot 프로젝트에 Swagger 3.0.0을 적용하는 방법은 아래 포스트를 참고하면 된다. [Spring Boot] Kotlin 기반 Spring Boot 프로젝트에 Swagger 3.0.0 적용하기 개요 예제로 블로그에 글을 작성할 때 제목과 내용, 카테고리 일련번호와 파일 하나를 업로드하여 작성하는 API를 구현한다. Swagger를 통해 테스트하기 때문에 별도의 화면은 구성하지 않는다. Domain 블로그의 글과 관련된 BoardDTO를 작성한다. data class BoardDTO(.. 2022. 12. 23.
[Spring Boot] Swagger를 적용했을 때 리다이렉트 에러가 발생하는 경우(javax.servlet.ServletException) Swagger2를 사용할 땐 컨트롤러의 메소드에서 "redirect:/swagger-ui.html"를 반환하여 Swagger 문서로 리다이렉트 해도 아무 문제가 없었는데 Swagger3을 사용하니 같은 방법을 썼을 때 javax.servlet.ServletException: Could not resolve view with name 'redirect:/swagger-ui/index.html' in servlet with name 'dispatcherServlet'라는 에러가 발생했다. 대충 요약하자면 redirect:/swagger-ui/index.html라는 서블릿이 없다는거다. 구글링을 해보니 Swagger 설정을 하는 Config 클래스에 다음 코드를 추가하면 된다고 한다. // Kotlin @Be.. 2022. 12. 22.
[Oracle] Spring Boot 프로젝트에서 Mybatis 세팅하기 with Kotlin 목차 기본 환경 IntelliJ Ultimate 2022.3 Spring Boot 2.7.6 Kotlin 1.7.21(JDK 11) Oracle 11g Swagger 3.0.0 mybaitis 2.3.0 Spring Boot 프로젝트에 Swagger 3.0.0을 적용하는 방법은 아래 포스트를 참고하면 된다. 2022.12.06 - [Spring Boot] - Kotlin 기반 Spring Boot 프로젝트에 Swagger 3.0.0 적용하기 Mybatis는 무엇인가? Mybatis는 Java에서 관계형 데이터베이스를 사용하는 개발을 더욱 수월하게 해주는 프레임워크로, 기존의 JDBC를 사용한 코드를 별도의 XML 파일로 분리하여 자바 코드상의 SQL을 모두 제거하고 관리를 편하게 해준다는 장점을 갖는다... 2022. 12. 20.
[Spring Boot] Kotlin 기반 Spring Boot 프로젝트에 Swagger 3.0.0 적용하기 본 포스트에서 사용하는 Springfox는 2020년 7월 이후로 릴리즈가 중단되었습니다. 현재도 지속적으로 릴리즈 중이면서 Swagger UI를 사용할 수 있는 또 다른 라이브러리인 Springdoc을 사용하는 방법은 이 링크를 참고해주세요. 목차 기본 환경 IntelliJ Ultimate 2022.3 Spring Boot 2.7.6 Kotlin 1.7.21(JDK 11) Springfox Swagger UI 3.0.0 Swagger란? Swagger는 개발자가 REST API를 설계, 빌드, 테스트, 문서화를 쉽게 할 수 있도록 도와주는 오픈 소스 프레임워크이다. Swagger를 사용하면 따로 Postman을 사용하지 않거나 테스트 페이지를 만들지 않고도 직접 파라미터를 입력하면서 개발한 API를 간.. 2022. 12. 6.