Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 정보처리기사 실기 기출문제
- 티스토리챌린지
- minikube
- MySQL
- AWS EKS
- kotlin spring
- Pinpoint
- APM
- 정보처리기사 실기
- PETERICA
- Linux
- Spring
- 코틀린 코루틴의 정석
- aws
- 오블완
- Java
- kotlin coroutine
- kotlin querydsl
- kotlin
- Elasticsearch
- AI
- 정보처리기사실기 기출문제
- IntelliJ
- CKA 기출문제
- 공부
- 기록으로 실력을 쌓자
- Kubernetes
- CloudWatch
- mysql 튜닝
- CKA
Archives
- Today
- Total
피터의 개발이야기
[Spring] Spring Boot에 Swagger 붙이기 본문
반응형
백엔드 개발과 프론트 개발을 위해 꼭 필요한 요소는 상호 소통일 것 입니다.
예전에 일했던 프로젝트에서는 프로세스를 관리하는 프로그램을 가지고 있었다.
기획단계에서 어플리케이션의 프로세스를 정의하고 그 프로세스에 코드를 부여하여,
그 프로세스에 대한 전문양식을 프로세스 관리 시스템에서 확인 할 수 있었다.
그래서 백엔드 개발자와 프론트 개발자들은 그 프로세스 전문 코드 양식과 설명에 따라 프로그램을 개발하였고,
오류나 기획단계에서 데이터 설계에도 큰 도움의 되었다.
이와 비슷한 swagger는 RestController 어노테이션을 기준으로 내부의 API를 자동 분석하여 HTML 문서로 제공하는 오픈소스이다.
swagger는 백엔드가 개발한 API들의 논리적 설명과 전문들의 정의를 볼 수 있다.
또한 바로 데이터를 적용하여 테스트를 진행할 수 있는 페이지여서 백엔드 자체 테스트에도 중요한 툴이 되기도 하였다.
gradle
// swagger
compile group: 'io.springfox', name: 'springfox-swagger2', version: '2.9.2'
compile group: 'io.springfox', name: 'springfox-swagger-ui', version: '2.9.2'
SwaggerConfig
@Configuration
@EnableSwagger2
public class SwaggerConfig {
@Bean
public Docket api() {
return new Docket(DocumentationType.SWAGGER_2)
.select()
.apis(RequestHandlerSelectors.basePackage("com.peterica.swagger"))
// .apis(RequestHandlerSelectors.any())
.paths(PathSelectors.any())
.build()
.apiInfo(apiInfo());
}
private ApiInfo apiInfo() {
return new ApiInfo(
"Swagger Test REST API",
"API의 설명을 여기에 기제한다.",
"API 버젼은 여기",
"팀의 서비스 URL",
new Contact("앱의 이름", "www.example.com", "ilovefran.ofm@gmail.com"),
"License of API", "license URL", Collections.emptyList());
}
}
Contoller
@RestController
@RequiredArgsConstructor
public class DemoController {
private final TestService testService;
@GetMapping("/")
@ApiOperation(httpMethod = "GET", value = "pingPong", notes = "pingPong",
response = String.class, tags = "시스템 모니터링")
public String pong(){
return "pong";
}
@GetMapping("/dbTest")
@ApiOperation(httpMethod = "GET", value = "Mybatis Test", notes = "Mybatis Test",
tags = "Mybatis테스트")
public List<String> dbTest(){
return testService.getTest();
}
}
swagger 메인 페이지
적용이 정말 쉬웠다. 알아서 API들을 정리하여 표출하고 ApiOperation을 설정하여 부가적인 설명을 부여할 수 있었다.
Try it out을 누르면 테스트 할 수 있는 페이지로 변경된다.
Mybatis테스트를 실행 하였고
그 결과를 Response Body에서 확인 할 수 있다.
소스는 여기에 있습니다.
반응형
'Programming > Spring' 카테고리의 다른 글
[Spring] 컨트롤러 액션에서 외부 URL로 redirection (0) | 2021.01.10 |
---|---|
[SpringBoot] SpringBoot 슬랙 연동하기 (0) | 2021.01.09 |
[Spring] Mybatis 연동 (0) | 2021.01.03 |
[Spring] SpringBoot를 kill 하는 3가지 방법 (0) | 2020.12.26 |
[Spring] PDF의 첫장 섬네일 만들기 (0) | 2020.12.24 |
Comments