From 532e150ba184f506109ef97d04b583e0a0a46b40 Mon Sep 17 00:00:00 2001 From: sjungwon03 Date: Fri, 24 Jul 2026 17:06:33 +0900 Subject: [PATCH] =?UTF-8?q?docs:=20PageMeta=EC=97=90=20example=20=EB=AA=85?= =?UTF-8?q?=EC=8B=9C=ED=95=B4=20Swagger=20=EC=9D=98=EB=AF=B8=EC=97=86?= =?UTF-8?q?=EB=8A=94=20=EC=83=98=ED=94=8C=EA=B0=92=20=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit int/long 필드에 example이 없으면 Swagger UI 샘플러가 2^30, 2^53-1(Number.MAX_SAFE_INTEGER) 같은 의미 없는 기본값을 채워 넣는다. @Schema(example=...)로 실제 값처럼 보이는 예시를 명시한다. Closes #217 --- .../java/com/bop/youthpick/global/common/PageMeta.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/bop/youthpick/global/common/PageMeta.java b/src/main/java/com/bop/youthpick/global/common/PageMeta.java index 53b9a4a..da7138d 100644 --- a/src/main/java/com/bop/youthpick/global/common/PageMeta.java +++ b/src/main/java/com/bop/youthpick/global/common/PageMeta.java @@ -1,5 +1,6 @@ package com.bop.youthpick.global.common; +import io.swagger.v3.oas.annotations.media.Schema; import org.springframework.data.domain.Page; /** @@ -7,8 +8,14 @@ * *

{@code page}는 1부터 시작한다(1-based). {@link Page#getNumber()}는 Spring Data 내부 규약대로 0-based라 여기서 +1 * 해서 응답 규약을 요청 파라미터(`spring.data.web.pageable.one-indexed-parameters=true`)와 맞춘다. + * + *

필드에 {@code example}을 주지 않으면 Swagger UI가 int/long 기본 샘플 값(2^30, 2^53-1 등 의미 없는 큰 수)을 채워 넣으므로 실제 + * 값처럼 보이는 예시를 명시한다. */ -public record PageMeta(int page, long totalCount, int totalPages) { +public record PageMeta( + @Schema(description = "현재 페이지 번호(1부터 시작)", example = "1") int page, + @Schema(description = "전체 데이터 개수", example = "42") long totalCount, + @Schema(description = "전체 페이지 수", example = "5") int totalPages) { public static PageMeta from(Page page) { return new PageMeta(page.getNumber() + 1, page.getTotalElements(), page.getTotalPages()); }