Spring project에 Swagger 적용하기

2023. 12. 12. 23:19· TIL
목차
  1. Swagger
  2. 사용한 목적
  3. Swagger 기능
  4. 의존성 추가
  5. SwaggerConfig
  6. url
  7. 어노테이션
728x90
반응형

2023년 12월 12일 TIL

플젝을 진행하면서 swagger 한번 적용해보겠다고 하루를 날렸다.

Swagger

사용한 목적

이 전 프로젝트에서 다른 동료가 swagger 를 이용하여 테스트 환경을 구축하는 걸 보았고, 사용 해봄으로써 사용성에 반했다. 또한 당근 서버밋업에서 현직 개발자들도 swagger 를 이용하여 문서화하고 소통한다는 발표를 들었기 때문에 반드시 내 기술로 만들겠다는 목표를 세웠다.

Swagger 기능

  • API의 문서화 : 해당 서비스 내의 RESTful API 가 자동으로 문서화된다.
  • API 테스트 : 문서화 된 API 를 swagger 상에서 실시간으로 테스트 해볼 수 있다.

의존성 추가

본 프로젝트에선 build.gradle 을 사용했다.

dependencies {

    // Swagger (Springdoc OpenAPI)
    implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.1.0'

}

dependencies 에 swagger 를 이용하기 위해 springdoc - openapi 를 추가해준다.
여기 저기 찾아보sl Springfox 도 있길래 욕심껏 이것 저것 다 넣고 돌렸더니 충돌났다.
Springfox 와 springdoc 내부에 있는 API가 많이 다르다.
그 사이에서 해결하지 못하고 한참 고생했다. gpt4는 별 도움이 되지 않았다...
하나만 골라 사용하는걸로.

SwaggerConfig

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import io.swagger.v3.oas.models.OpenAPI;
import io.swagger.v3.oas.models.info.Info;

@Configuration
public class SwaggerConfig {

    @Bean
    public OpenAPI customOpenAPI() {
        return new OpenAPI()
                .info(new Info()
                    .title("My API")
                    .version("1.0.0")
                    .description("This is a sample API documentation"));
    }
}

common 패키지 내부에 SwaggerConfig 를 만들어 줬다.
GroupedOpenApi 라던지 ApiInfo 라던지 Docket 이라던지
springdoc 에서 지원하지 않는 API를 GPT 녀석이 추천해주는 바람에 정말 쌩고생했다.

url

    localhost:8080/swagger-ui/index.html#/

개인적인 생각이지만 swagger 적용한 후 배포를 하게 된다면 배포를 통해 접근해볼 수 있지 않을까 싶다.

어노테이션

apidocs swagger 어노테이션 링크

728x90
반응형
저작자표시 (새창열림)

'TIL' 카테고리의 다른 글

project 중간 정리  (0) 2023.12.28
DFS  (0) 2023.12.15
알고리즘 정리 (완전탐색)  (1) 2023.12.07
TIL  (0) 2023.12.06
알고리즘 테크닉 정리  (0) 2023.12.05
  1. Swagger
  2. 사용한 목적
  3. Swagger 기능
  4. 의존성 추가
  5. SwaggerConfig
  6. url
  7. 어노테이션
'TIL' 카테고리의 다른 글
  • project 중간 정리
  • DFS
  • 알고리즘 정리 (완전탐색)
  • TIL
정유감
정유감
반응형
정유감
정말유감이야
정유감
전체
오늘
어제
  • 분류 전체보기 (57)
    • TIL (48)
    • KPT (4)
    • TMI (3)
    • BLOG (0)
    • DIARY (0)
    • 포스팅용 메모 (0)
    • AS (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 하이퍼링크?
  • toBinary
  • isBefore
  • Comparator
  • 완전탐색
  • 비트마스크
  • 홀수 짝수
  • 에이닷
  • 백트래킹
  • 순열
  • Til
  • markdown
  • euclidean
  • mapToInt
  • contains
  • kpt
  • 약수의 합
  • Summit
  • 자연수 뒤집어 배열로 만들기
  • 브루트포스

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.1
정유감
Spring project에 Swagger 적용하기
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.