일반적으로 프론트엔드 - 백엔드 개발을 할 때, 아래와 같은 과정에서 통신이 일어난다.
Client - Front-End <-> Back-End
이때, 예를 들어, RESTful API를 사용해 통신을 한다고 가정할 때,
프론트 엔드 또한 백엔드에 어떤 방식으로 요청을 해야 해당 API를 사용할 수 있는지 알아야하고 어떤 결과를 가져오는지를 알아야 서로 원활한 통신이 가능하다.
이런 경우, 사용하는 Library가 Swagger이다.
Swagger
- 서버로 요청되는 API 리스트를 HTML화면으로 문서화하여 테스트할 수 있는 라이브러리.
- @RestController로 설정된 Class 빈을 읽어 HTML 문서를 작성함.
- API 형식 변경마다 자동으로 업데이트.
사용 방법
- 사용 환경은 Spring Boot 3버전 이상임을 가정한다.
1. Dependancy
<!-- Swagger -->
<!-- API 문서화 -->
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
<version>2.0.2</version>
</dependency>
2. API 문서 설명
여기서는 많은 설정을 하지는 않았지만 더 많은 설정이 가능하다.
또한, 이는 Application.java 상단에 작성하였다.
@OpenAPIDefinition(
info = @Info(
title = "This is API",
version = "1.0.0",
description = "Connect me anytime",
contact = @Contact(
name = "name",
email = "email"
)
)
)
3. Controller 설명
이는 어떤 컨트롤러가 어떤 역할을 하고 결과마다 어떤 의미를 갖는지 정리한 것이다.
Controller 클래스 내부에 작성한다.
@Operation(summary = "회원 등록 요청", description = "회원 정보가 등록됩니다.", tags = { "Member Controller" })
@ApiResponses({
@ApiResponse(responseCode = "200", description = "OK", content = @Content(schema = @Schema(implementation = Member.class))),
@ApiResponse(responseCode = "400", description = "BAD REQUEST"),
@ApiResponse(responseCode = "404", description = "NOT FOUND"),
@ApiResponse(responseCode = "500", description = "INTERNAL SERVER ERROR")
})
'Server Development > Testing' 카테고리의 다른 글
Apache Jmeter (0) | 2023.05.15 |
---|---|
Test Coverage with Jacoco (0) | 2023.04.02 |
Unit Test with MVC (0) | 2023.04.02 |
TDD (0) | 2023.03.27 |
Testing HTTP Request with Insomnia (0) | 2023.03.27 |