독학/[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);
}
}
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!");
}
}
📜참고 자료
https://www.youtube.com/watch?v=-Pf0IV6j1yU
https://m.blog.naver.com/hj_kim97/222652876898