Spring boot로 Rest API 만들기 간단 예제 (5)입니다.
전 편에서 Postman으로 확인했던 결과를 Swagger UI로 더 편리하게 확인해보겠습니다.
0. 이전 글 참고
- [SPRING BOOT] REST API 간단 예제 - (1) 프로젝트 생성
- [SPRING BOOT] REST API 간단 예제 - (2) DB, VO, DAO, XML
- [SPRING BOOT] REST API 간단 예제 - (3) Service 만들기
- [SPRING BOOT] REST API 간단 예제 - (4) Controller, Postman 출력
1. 환경
- Visual Studio Code : 1.61.2 version
- Spring boot : 2.5.7 version / gradle
- java 11
2. Swagger UI 환경설정
implementation 'io.springfox:springfox-swagger2:2.9.2'
implementation 'io.springfox:springfox-swagger-ui:2.9.2'
- build.gradle 파일에서 dependencies를 추가합니다.
plugins {
id 'org.springframework.boot' version '2.5.7'
id 'io.spring.dependency-management' version '1.0.11.RELEASE'
id 'java'
id 'war'
}
- 이 예제에서 Spring boot 버전을 2.6.2로 했었는데 2.6 버전에서 Swagger UI 오류가 있습니다.
- 그래서 저는 버전을 2.5.7 버전으로 수정했습니다.
3. SwaggerConfiguration.java
package com.test.demo.swagger;
import java.util.HashSet;
import java.util.Set;
import javax.servlet.ServletContext;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
@Configuration
@EnableSwagger2
public class SwaggerConfiguration {
@Bean
public Docket SwaggerApi(ServletContext servletContext) {
return new Docket(DocumentationType.SWAGGER_2)
.consumes(getConsumeContentTypes())
.produces(getProduceContentTypes())
.apiInfo(swaggerInfo())
.groupName("Test")
.select()
.apis(RequestHandlerSelectors.basePackage("com.test.demo.controller"))
.paths(PathSelectors.ant("/**"))
.build()
.useDefaultResponseMessages(false);
}
private Set<String> getConsumeContentTypes() {
Set<String> consumes = new HashSet<>();
consumes.add("application/json;charset=UTF-8");
consumes.add("application/x-www-form-urlencoded");
return consumes;
}
private Set<String> getProduceContentTypes() {
Set<String> produces = new HashSet<>();
produces.add("application/json;charset=UTF-8");
return produces;
}
private ApiInfo swaggerInfo() {
return new ApiInfoBuilder().title("Test API Documentation")
.description("Swagger UI 간단 예제입니다.")
.license("nana")
.licenseUrl("https://nm-it-diary.tistory.com")
.version("1.0")
.build();
}
}
- Swagger UI 설정 파일입니다.
- Docket을 만들어 컨트롤러를 지정하고, group 이름을 설정했습니다.
- swaggerInfo는 Swagger UI를 켰을 때, 상단에 보일 정보입니다.
- 위의 파일을 추가한 후, "http://localhost:8080/swagger-ui.html"에 접속합니다.
4. Swagger UI 화면 (http://localhost:8080/swagger-ui.html)
- Swagger UI 화면입니다.
- 위의 코드에 설정한 대로 정보들이 상단에 표시됩니다.
- group을 "Test"로 설정했기 때문에 오른쪽 상단 셀렉트 박스에 Test가 선택되어 있습니다.
- book-info-controller를 보면 컨트롤러에서 만들었던 get, post, put, delete가 모두 들어가 있습니다.
- 맨 하단에 있는 Models를 클릭해보면 우리가 만든 BookInfoVO 정보를 확인할 수 있습니다.
5. Swagger UI 결과 출력 방법
- 먼저, 오른쪽 상단에 "Try it out" 버튼을 클릭합니다.
- 파라미터가 있다면 파라미터 정보를 입력합니다.
- "Execute" 버튼을 클릭하면 postman과 같은 결과를 Responses에서 확인할 수 있습니다.
6. 다음 글 참고
- [SPRING BOOT] REST API 간단 예제 - (6) Swagger UI 꾸미기
이상으로 Postman 보다 보기 편한 Swagger UI 설정 후, 출력 방법까지 알아보았습니다.
'Web Developer's Story > SPRING BOOT' 카테고리의 다른 글
[SPRING BOOT] REST API File 예제 - (1) VO, Service (0) | 2022.03.07 |
---|---|
[SPRING BOOT] REST API 간단 예제 - (6) Swagger UI 꾸미기 (0) | 2022.03.02 |
[SPRING BOOT] REST API 간단 예제 - (4) Controller, Postman 출력 (0) | 2022.02.22 |
[SPRING BOOT] REST API 간단 예제 - (3) Service 만들기 (0) | 2022.02.17 |
[SPRING BOOT] REST API 간단 예제 - (2) DB, VO, DAO, XML (0) | 2022.02.14 |