Programing/API

Swagger Springboot 3.x 의존성 주입 및 Information 설정, 기본 설정

리커니 2024. 3. 25. 09:15
반응형

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

 

Swagger Springboot 3.x Operation 설정 방법

Swagger Springboot 3.x Operation 설정 방법입니다. 초기 설정 방법은 아래의 Link를 확인하세요. Link : https://aljjabaegi.tistory.com/713 Swagger Springboot 3.x 의존성 주입 및 Information 설정, 기본 설정 Swagger Springboot 3

aljjabaegi.tistory.com

 

Link : https://aljjabaegi.tistory.com/715

 

Swagger Springboot 3.x Response 설정 방법

Swagger Springboot 3.x Response 설정 방법입니다. 초기 설정과 Operation 설정은 아래의 Link를 확인하세요. Link : https://aljjabaegi.tistory.com/713 Swagger Springboot 3.x 의존성 주입 및 Information 설정, 기본 설정 Swagger

aljjabaegi.tistory.com

 

Link : https://aljjabaegi.tistory.com/716

 

Swagger Springboot 3.x Spring.properties 설정 옵션

Swagger Springboot 3.x Spring.properties 설정 옵션입니다. 초기세팅 및 Information, Operation, Response 설정은 아래의 Link 를 확인하세요! Link : https://aljjabaegi.tistory.com/713 Swagger Springboot 3.x 의존성 주입 및 Informati

aljjabaegi.tistory.com

 

Link : https://aljjabaegi.tistory.com/717

 

Swagger Springboot 3.x JWT 인증 적용 방법

Swagger Springboot 3.x JWT 인증 적용 방법입니다. Swagger 초기 설정 및 Operation, Response, application.properties 관련 방법은 아래의 Link를 확인하세요! Link : https://aljjabaegi.tistory.com/713 Swagger Springboot 3.x 의존성

aljjabaegi.tistory.com

 

Link : https://aljjabaegi.tistory.com/718

 

Swagger Springboot 3.x Grouping 방법

Swagger Springboot 3.x Grouping 방법입니다. Swagger에 대한 다양한 설정 방법은 아래의 Link를 확인하세요! Link : https://aljjabaegi.tistory.com/713 Swagger Springboot 3.x 의존성 주입 및 Information 설정, 기본 설정 Swagger

aljjabaegi.tistory.com

 

Github Swagger Project

https://github.com/aljjabaegiProgrammer/swagger-api

 

GitHub - aljjabaegiProgrammer/swagger-api: swagger API project

swagger API project. Contribute to aljjabaegiProgrammer/swagger-api development by creating an account on GitHub.

github.com

 

반응형