독학/[etc] 개발 관련 사항 정리

[😎Swagger] 스프링 프로젝트 swagger 세팅하기

최연재 2024. 12. 16. 17:28

1. 의존성 추가

build.gradle > dependencies에 아래 코드 추가 후 sync를 진행합니다.

implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.5.0'

 

2. SwaggerConfig.java 기본 코드 작성

src 폴더 내에 config 폴더를 만들고, 아래 코드를 작성합니다.

package com.appsolve.wearther_backend.config;

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

@Configuration
public class SwaggerConfig {
    private static final String API_NAME = "Appsolve";
    private static final String API_VERSION = "1.0.0";
    private static final String API_DESCRIPTION = "<h3>Appsolve API TEST</h3>";
    
    @Bean
    public OpenAPI openAPI() {
        Info info = new Info()
                .title(API_NAME)
                .version(API_VERSION)
                .description(API_DESCRIPTION);
        return new OpenAPI().info(info);
    }
}
프로젝트 실행 후 사진 속의 url로 접근하면 다음과 같은 화면을 볼 수 있습니다.

3. Swagger 테스트

동작 여부 테스트를 위한 controller 코드를 작성합니다.

package com.appsolve.wearther_backend.config.controller;

import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@Tag(name="test", description = "api 테스트 용도")
@RequestMapping("/api/test")
public class TestController {

    private static final Logger log = LoggerFactory.getLogger(TestController.class);

    @GetMapping("/title")
    @Operation(summary = "Get title", description = "타이틀 반환")
    public ResponseEntity<String> getTitle() {
        log.info("API /title 호출됨");
        return ResponseEntity.ok("Appsolve!");
    }
}
Try it out 클릭
Execute 클릭 시 아래와 같이 결과 확인 가능
로그를 통해실행된 것을 확인 가능!

 
 

📜참고 자료

https://www.youtube.com/watch?v=-Pf0IV6j1yU
https://m.blog.naver.com/hj_kim97/222652876898