1. 개요
이 사용방법(예제)에서는 Swagger API 응답을 수정하는 방법을 배웁니다. 먼저 OpenAPI 사양 및 Swagger API 응답에 대한 몇 가지 설명부터 시작하겠습니다. 그런 다음 Spring Boot 를 사용하여 간단한 예제를 구현 하여 OpenApi 3.0을 사용하여 스프링 REST API를 문서화합니다 . 그런 다음 Swagger의 어노테이션을 사용하여 객체 List을 전달하도록 Response body을 설정합니다.
2. 시행
이 구현에서는 Swagger UI를 사용하여 간단한 Spring Boot 프로젝트를 설정합니다. 결과적으로 애플리케이션의 모든 엔드포인트를 포함하는 Swagger UI를 갖게 됩니다. 그런 다음 Response body을 수정하여 List을 반환합니다.
2.1. Swagger UI로 Spring Boot 프로젝트 설정
먼저 제품 List을 저장하는 ProductService 클래스를 만듭니다. 다음으로 ProductController 에서 사용자가 생성된 제품 List을 얻을 수 있도록 REST API를 정의합니다.
먼저 Product 클래스를 정의해 보겠습니다.
public class Product {
String code;
String name;
// standard getters and setters
}
그런 다음 ProductService 클래스 를 구현합니다 .
@Service
public class ProductService {
List<Product> productsList = new ArrayList<>();
public List<Product> getProductsList() {
return productsList;
}
}
마지막으로 REST API를 정의 하는 Controller 클래스가 있습니다.
@RestController
public class ProductController {
final ProductService productService;
public ProductController(ProductService productService) {
this.productService = productService;
}
@GetMapping("/products")
public List<Product> getProductsList(){
return productService.getProductsList();
}
}
2.2. Swagger API 응답 수정
REST API를 문서화하는 데 사용할 수 있는 여러 Swagger 어노테이션이 있습니다. @ApiResponses 를 사용하여 @ApiResponse 배열을 정의하여 REST API에 대한 예상 응답을 정의할 수 있습니다.
이제 @ApiResponses를 사용 하여 getProductList 메서드 에 대한 응답 콘텐츠를 Product 개체 List으로 설정해 보겠습니다.
@ApiResponses(
value = {
@ApiResponse(
content = {
@Content(
mediaType = "application/json",
array = @ArraySchema(schema = @Schema(implementation = Product.class)))
})
})
@GetMapping("/products")
public List<Product> getProductsList() {
return productService.getProductsList();
}
이 예에서는 Response body에서 미디어 유형을 application/json 으로 설정합니다. 또한 content 키워드 를 사용하여 Response body을 수정했습니다 . 또한 array 키워드를 사용하여 Product 개체 의 배열에 대한 응답을 설정 합니다.
3. 결론
이 사용방법(예제)에서는 OpenAPI 사양 및 Swagger API 응답을 간략하게 살펴보았습니다. Swagger는 다양한 키워드를 포함하여 @ApiResponses 와 같은 다양한 어노테이션을 제공합니다 . 따라서 이를 사용하여 애플리케이션의 요구 사항을 충족하도록 요청 및 응답을 쉽게 수정할 수 있습니다. 구현 시 @ApiResponses 를 사용하여 Swagger Response body의 콘텐츠를 수정했습니다.
항상 그렇듯이 코드는 GitHub에서 사용할 수 있습니다 .