Swagger Springboot 3.x 의존성 주입 및 Information 설정, 기본 설정
Swagger Springboot 3.x 의존성 주입 및 Information 설정, 초기 세팅 방법입니다.
의존성 추가
Gradle 에 Spring-web starter 와 Swagger dependency를 추가합니다.
dependencies {
implementation 'org.springframework.boot:spring-boot-starter'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
/*starer*/
implementation group: 'org.springframework.boot', name: 'spring-boot-starter-web', version: '3.2.4'
/*swagger*/
implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.2.0'
}
프로젝트를 실행하고 http://localhost:8080/swagger-ui/index.html 페이지로 이동하면 Swagger page가 열리게 됩니다.
매번 주소를 입력하기 귀찮으니 springboot main class를 열어 프로젝트 구동 시 주소가 출력되게 설정합니다.
우선 application.yml 파일을 열어 아래와 같이 Port 와 Contentx-path 를 설정합니다.
(properties 파일을 쓰시는 분들은 내용만 맞게 설정해주세요.)
spring:
application:
name: swagger
server:
port: 8080
servlet:
context-path: /swagger-api
이제 메인클래스를 열어 아래와 같이 작성해 주시면 됩니다.
단순히 ApplicationRunner의 구현체로 프로젝트가 실행되면 application.yml의 내용을 읽어
Swagger 주소의 로그를 출력해 줍니다.
package com.aljjabaegi.swagger.api;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.stereotype.Component;
@SpringBootApplication
public class ApiApplication {
private static final Logger LOGGER = LoggerFactory.getLogger(ApiApplication.class);
public static void main(String[] args) {
SpringApplication.run(ApiApplication.class, args);
}
@Component
public class SwaggerInformation implements ApplicationRunner {
@Value("${server.port}")
private String port;
@Value("${server.servlet.context-path}")
private String contextPath;
@Override
public void run(ApplicationArguments args) {
LOGGER.info("Swagger : http://localhost:" + port + contextPath + "/swagger-ui/index.html");
}
}
}
API Information 설정
Swagger 메인 상단에 설정할 수 있는 정보에 대해서 알아보겠습니다.
SwaggerConfig.java 파일을 config 패키지에 생성하여
아래와 같이 @openAPIDefinition 의 내용을 정의합니다.
SwaggerConfig.java
package com.aljjabaegi.swagger.api.config;
import io.swagger.v3.oas.annotations.OpenAPIDefinition;
import io.swagger.v3.oas.annotations.info.Contact;
import io.swagger.v3.oas.annotations.info.Info;
import io.swagger.v3.oas.annotations.info.License;
import io.swagger.v3.oas.annotations.servers.Server;
import org.springframework.context.annotation.Configuration;
@OpenAPIDefinition(
info = @Info(
title = "API title",
description = """
API Description
""",
version = "v1.0.0",
contact = @Contact(
name = "geonlee",
email = "geonlee@kakao.com"
),
license = @License(
name = "Apache License Version 2.0",
url = "http://www.apache.org/licenses/LICENSE-2.0"
)),
servers = @Server(url = "/swagger-api"))
@Configuration
public class SwaggerConfig {
}
application.yml
springdoc:
api-docs:
path: /api-docs
Operation, Response, application.properties, JWT 관련 swagger 설정 방법은 아래의 Link를 확인하세요!
Link : https://aljjabaegi.tistory.com/714
Link : https://aljjabaegi.tistory.com/715
Link : https://aljjabaegi.tistory.com/716
Link : https://aljjabaegi.tistory.com/717
Link : https://aljjabaegi.tistory.com/718
Github Swagger Project
https://github.com/aljjabaegiProgrammer/swagger-api