From cdb68c72c20d7303d6d142c4592cea1307c31798 Mon Sep 17 00:00:00 2001 From: pricelees Date: Tue, 15 Jul 2025 11:35:27 +0900 Subject: [PATCH] =?UTF-8?q?refactor:=20Swaggger=EC=9D=98=20useReturnTypeSc?= =?UTF-8?q?hema=20=3D=20true=20=EC=A0=81=EC=9A=A9=20=EB=B0=8F=20=EA=B8=B0?= =?UTF-8?q?=EC=A1=B4=EC=9D=98=20Swagger=20Spec=20=EC=A0=95=EC=9D=98=20?= =?UTF-8?q?=ED=8C=8C=EC=9D=BC=20=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/roomescape/auth/docs/AuthAPI.kt | 24 +++---------------- .../common/docs/CommonApiResponseSpec.kt | 24 ------------------- 2 files changed, 3 insertions(+), 45 deletions(-) delete mode 100644 src/main/java/roomescape/common/docs/CommonApiResponseSpec.kt diff --git a/src/main/java/roomescape/auth/docs/AuthAPI.kt b/src/main/java/roomescape/auth/docs/AuthAPI.kt index c0ef2516..a6e8fbcc 100644 --- a/src/main/java/roomescape/auth/docs/AuthAPI.kt +++ b/src/main/java/roomescape/auth/docs/AuthAPI.kt @@ -2,13 +2,9 @@ package roomescape.auth.docs import io.swagger.v3.oas.annotations.Operation import io.swagger.v3.oas.annotations.Parameter -import io.swagger.v3.oas.annotations.media.Content -import io.swagger.v3.oas.annotations.media.Schema import io.swagger.v3.oas.annotations.responses.ApiResponse import io.swagger.v3.oas.annotations.responses.ApiResponses import io.swagger.v3.oas.annotations.tags.Tag -import jakarta.servlet.http.HttpServletRequest -import jakarta.servlet.http.HttpServletResponse import jakarta.validation.Valid import org.springframework.http.ResponseEntity import org.springframework.web.bind.annotation.RequestBody @@ -16,19 +12,13 @@ import roomescape.auth.web.LoginCheckResponse import roomescape.auth.web.LoginRequest import roomescape.auth.web.support.LoginRequired import roomescape.auth.web.support.MemberId -import roomescape.common.docs.EmptyResponseSpec -import roomescape.common.docs.ResponseSpec import roomescape.common.dto.response.CommonApiResponse @Tag(name = "1. 인증 / 인가 API", description = "로그인, 로그아웃 및 로그인 상태를 확인합니다") interface AuthAPI { @Operation(summary = "로그인") @ApiResponses( - ApiResponse( - responseCode = "200", - description = "로그인 성공시 쿠키에 토큰 정보를 저장합니다.", - content = [Content(schema = Schema(implementation = EmptyResponseSpec::class))] - ), + ApiResponse(responseCode = "200", description = "로그인 성공시 쿠키에 토큰 정보를 저장합니다."), ) fun login( @Valid @RequestBody loginRequest: LoginRequest @@ -39,7 +29,7 @@ interface AuthAPI { ApiResponse( responseCode = "200", description = "로그인 상태이며, 로그인된 회원의 이름을 반환합니다.", - content = [Content(schema = Schema(implementation = LoginCheckResponseSpec::class))] + useReturnTypeSchema = true ), ) fun checkLogin( @@ -49,15 +39,7 @@ interface AuthAPI { @LoginRequired @Operation(summary = "로그아웃", tags = ["로그인이 필요한 API"]) @ApiResponses( - ApiResponse( - responseCode = "200", - description = "로그아웃 성공시 쿠키에 저장된 토큰 정보를 삭제합니다.", - content = [Content(schema = Schema(implementation = EmptyResponseSpec::class))] - ), + ApiResponse(responseCode = "200", description = "로그아웃 성공시 쿠키에 저장된 토큰 정보를 삭제합니다."), ) fun logout(): ResponseEntity> } - -data class LoginCheckResponseSpec( - override val data: LoginCheckResponse = LoginCheckResponse(name = "sangdol") -) : ResponseSpec diff --git a/src/main/java/roomescape/common/docs/CommonApiResponseSpec.kt b/src/main/java/roomescape/common/docs/CommonApiResponseSpec.kt deleted file mode 100644 index 6c2a82c2..00000000 --- a/src/main/java/roomescape/common/docs/CommonApiResponseSpec.kt +++ /dev/null @@ -1,24 +0,0 @@ -package roomescape.common.docs - -import io.swagger.v3.oas.annotations.media.Schema -import roomescape.common.exception.ErrorType - -/** - * Swagger API 문서의 Content에서만 사용되는 스펙 - */ - -@Schema(name = "API 에러 응답") -data class ErrorResponseSpec( - val errorType: ErrorType, - val message: String? = errorType.description -) - -@Schema(name = "API 성공 응답") -interface ResponseSpec { - val data: T -} - -@Schema(name = "데이터가 없는 API 성공 응답") -data class EmptyResponseSpec( - override val data: Unit = Unit -) : ResponseSpec