[spring] Spring Boot 에 Swagger ui 연동

[spring] Spring Boot 에 Swagger ui 연동

Swagger란 개발한 REST API를 편리하게 문서화 해주고, 이를 통해서 관리 및 제 3의 사용자가 편리하게 API를 호출해보고 테스트 할 수 있는 프로젝트이다.

1. Swagger 란

Swagger 란 개발한 Rest api를 편리하게 문서화 해주고, 이를 통해서 관리 및 제 3의 사용자가 편리하게 API를 호출해보고 테스트 할 수 있는 프로젝트 이다.

2. Spring Boot에 Swagger-Ui 연동하기

Spring Boot에서는 간단하게 springfox-boot-starter 를 dependencies 에 추가 함으로써 사용할 수 있다.

Maven Repository 바로가기

//file: "build.gradle"
plugins {
    id 'org.springframework.boot' version '2.5.5'
    id 'io.spring.dependency-management' version '1.0.11.RELEASE'
    id 'java'
}

group = 'com.manbalboy'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '11'

configurations {
    compileOnly {
        extendsFrom annotationProcessor
    }
}

repositories {
    mavenCentral()
}

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-web'
    compileOnly 'org.projectlombok:lombok'
    annotationProcessor 'org.projectlombok:lombok'
    testImplementation 'org.springframework.boot:spring-boot-starter-test'
    // https://mvnrepository.com/artifact/io.springfox/springfox-boot-starter
    implementation group: 'io.springfox', name: 'springfox-boot-starter', version: '3.0.0'

}

test {
    useJUnitPlatform()
}

그래이들을 설정 후 프로젝트를 실행 한후 /swagger-ui/ path로 접근하면 swagger 로 접근가능

3. Swagger Annotation

AnnotationAttributeTarget PropertyDescription

ApiModelProperty

value

ModelProperty#description

e.g. @ApiModelProperty(value="${property1.description}")

ApiModelProperty

description

ModelProperty#description

e.g. @ApiModelProperty(notes="${property1.description}")

ApiParam

value

Parameter#description

e.g. @ApiParam(value="${param1.description}")

ApiImplicitParam

value

Parameter#description

e.g. @ApiImplicitParam(value="${param1.description}")

ApiOperation

notes

Operation#notes

e.g. @ApiOperation(notes="${operation1.description}")

ApiOperation

summary

Operation#summary

e.g. @ApiOperation(value="${operation1.summary}")

RequestParam

defaultValue

Parameter#defaultValue

e.g. @RequestParam(defaultValue="${param1.defaultValue}")

RequestHeader

defaultValue

Parameter#defaultValue

e.g. @RequestHeader(defaultValue="${param1.defaultValue}")

4.마무리

Swagger의 데모 프로젝트는 다음과 같다 .

https://github.com/springfox/springfox-demos


© 2021. All rights reserved.