Springboot

API 응답 공통 포맷 ( Spring / Java )

땍땍 2024. 9. 2. 16:39

응답 공통 포맷은 협업에 있어 일관성 있는 형식으로 값을 제공함으로 효율적인 작업을 위해 설정하곤 한다.

이러한 포맷은 어디까지나 편의를 위해 설정하는 만큼 서비스에 따라 설정 값은 다르지만,

  • 응답 상태 값 ( error code , message 등의 상태를 확인할 수 있는 값 )
  • 반환 데이터 값

위 두 가지는 많은 곳에서 활용하는 것같다.

아래 코드는 기본적인 코드이다.

@Getter
public class ApiResult<T> {

  private final String code;
  private final String message;
  private final T data;

  public ApiResult(String code, String message, T data) {
    this.code = code;
    this.message = message;
    this.data = data;
  }

  public static <T> ApiResult<T> success(T data) {
    return new ApiResult<T>(HttpStatus.OK.name(), HttpStatus.OK.getReasonPhrase(), data);
  }

  public static <T> ApiResult<T> fail(String code, String message, T data) {
    return new ApiResult<T>(code, message, data);
  }
}

이렇게 작성된 포맷은 아래와 같이 사용할 수 있다.

@RestController
@RequestMapping("/api/test")

public class TestController {

  @GetMapping("/{status}")
  @Schema(name = "테스트")
  public ApiResult<String> test(@PathVariable String status) {
    if (status.equals("success")) return ApiResult.success("success"); 
    return ApiResult.fail("코드","메세지","데이터");
  }
}