본문 바로가기

Server Development/Testing

Swagger

 

 

일반적으로 프론트엔드 - 백엔드 개발을 할 때, 아래와 같은 과정에서 통신이 일어난다.

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