반환타입 클래스
package withplanner.withplanner_api.exception;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
import lombok.AllArgsConstructor;
import lombok.Getter;
import static withplanner.withplanner_api.exception.BaseResponseStatus.SUCCESS;
@Getter
@AllArgsConstructor
@JsonPropertyOrder({"isSuccess", "code", "message", "result"})
public class BaseResponse<T> {
@JsonProperty("isSuccess")
private final Boolean isSuccess;
private final String message;
private final int code;
@JsonInclude(JsonInclude.Include.NON_NULL)
private T result;
// 요청에 성공한 경우
public BaseResponse(T result) {
this.isSuccess = SUCCESS.isSuccess();
this.message = SUCCESS.getMessage();
this.code = SUCCESS.getCode();
this.result = result;
}
// 요청에 실패한 경우
public BaseResponse(BaseResponseStatus status) {
this.isSuccess = status.isSuccess();
this.message = status.getMessage();
this.code = status.getCode();
}
}
항상 controller에서 이 클래스에 감싸서 반환해주면 된다.
@PostMapping(value = "/make/post", consumes = {"multipart/form-data"})
public BaseResponse<ResultLongResp> createPostCommunity(@ModelAttribute CommunityMakeReq reqDto, @AuthenticationPrincipal User user) {
ResultLongResp result = communityService.createPostCommunity(reqDto, user.getUsername());
return new BaseResponse<>(result);
}