스웨거에서 왜 안뜨는 DTO 가 있는건지 의문이 들었다.
찾아보니
- 스웨거에서의 DTO 에 표시되는 케이스는 컨트롤러에서 반환되거나 파라미터로 사용되는
외부에 공개되는 DTO 의 경우에만 표시된다고 한다.
스웨거에서의 DTO 표기법
@Schema(description = "장바구니에 담긴 상품 수량을 변경하기 위한 요청 DTO")
public class CartProductUpdateRequestDTO {
@NonNull
@Schema(description = "장바구니 ID", example = "1", required = true)
Long cartId;
@NonNull
@Schema(description = "상품 ID", example = "1", required = true)
Long productId;
@Schema(description = "수량", required = true)
long quantity;
}
@Schema
- 클래스 레벨에서의 Schema
- 를 설정하였으나
- DTO 스키마 이름이 이쁘게 변경되지 않는다..
- 물론 내부적으로
- 필수값표시, 태그이름, 예시값은 정확하게 동작하긴한다.
이것도 찾아보니 DTO 등의 스키마 레벨의 경우, 별도 커스텀이 되지 않는다고 한다.
- 혹시나 다른 방법이 있으면 알려주시면 감사하겠습니다.
- 클래스 레벨에서의 Schema
@PositiveOrZero
- 같은 validation 어노테이션으로
- 정수값에 음수값이 들어가면 안되는 경우를 막을 수도 있다.
@PositiveOrZero @Schema(description = "수량", required = true, example = "10", minimum = "0") long quantity;
- 수량을 업데이트하는데 -1 ,-2 같은 값이 들어가면 안되는 경우 별도 설정할 수 있다.
- 또한
@Schema
의 경우@PositiveOrZero @Schema(description = "수량", required = true, example = "10", minimum = "0") long quantity;
- 같이 스웨거에 예시값이나 최솟값등을 지정도 가능하다.
Uploaded by N2T
'자바 > 리팩토링' 카테고리의 다른 글
스웨거와 RestDocs 의 장점을 뽑아내기 (0) | 2024.01.03 |
---|---|
[프로젝트] 스웨거 example 설정시 String.format 등의 동적 값 삽입이 불가능함 (0) | 2023.12.19 |
[리팩토링] 통합테스트와 단위테스트를 동시에 수행시 발생하는 테스트 메서드의 독립성 문제 (0) | 2023.11.26 |
[리팩토링] ExecutorService 에서 execute 과 submit 은 각각 어떤 경우 사용해야될까? (0) | 2023.11.26 |
[리팩토링] ENUM 에 한글과 value 등등.. (0) | 2023.11.19 |