diff --git a/src/main/java/roomescape/common/docs/CommonApiResponseSpec.kt b/src/main/java/roomescape/common/docs/CommonApiResponseSpec.kt new file mode 100644 index 00000000..6c2a82c2 --- /dev/null +++ b/src/main/java/roomescape/common/docs/CommonApiResponseSpec.kt @@ -0,0 +1,24 @@ +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