5. DTO와 AutoMapper 그리고 Repository

5-6. API 응답

이 섹션에서는 API 응답을 표준화하는 방법을 배웁니다.

모든 API 요청에 대해 일관된 형식의 응답을 반환하여 클라이언트가 API 응답을 더 쉽게 처리할 수 있도록 합니다.

  1. API 응답 모델 생성: APIResponse 클래스를 생성하여 API 응답의 표준 형식을 정의합니다. 이 클래스는 다음과 같은 속성을 포함합니다:
    • StatusCode: HTTP 상태 코드를 나타내며, 요청의 성공 여부를 판단하는 데 사용됩니다.IsSuccessful: 요청이 성공적으로 처리되었는지 여부를 나타내는 불리언 값입니다.ErrorMessages: 요청 처리 중 발생한 오류 메시지 목록입니다. 요청이 실패한 경우 클라이언트에게 유용한 정보를 제공합니다.Result: 요청의 결과 데이터를 포함하는 객체입니다. 이 속성은 성공적으로 처리된 요청의 결과를 클라이언트에게 전달하는 데 사용됩니다.
  2. 응답 모델 적용: API 컨트롤러의 각 메서드에서 APIResponse 모델을 사용하여 일관된 응답 형식을 반환합니다. 예를 들어, GET 요청의 경우 APIResponse 객체에 결과 데이터를 포함시키고, POST 요청의 경우 생성된 리소스의 정보를 Result 속성에 담아 반환합니다.Comment
  3. 응답 처리 로직 구현: API 컨트롤러 내에서 요청 처리 로직을 구현할 때, 요청의 성공 여부에 따라 APIResponse 객체의 IsSuccessfulErrorMessages 속성을 적절히 설정합니다. 요청이 성공적으로 처리된 경우 IsSuccessfultrue로 설정하고, 오류가 발생한 경우 false로 설정하며 ErrorMessages에 오류 메시지를 추가합니다.
  4. 클라이언트 측 처리: 클라이언트 애플리케이션에서 API 응답을 처리할 때 APIResponse 모델의 구조를 활용하여 응답 데이터를 쉽게 접근하고, 오류 메시지를 사용자에게 표시할 수 있습니다.
// APIResponse.cs
public class APIResponse
{
    public HttpStatusCode StatusCode { get; set; }
    public bool IsSuccess { get; set; }
    public List<string> ErrorMessages { get; set; }
    public object Result { get; set; }
}

API 응답을 표준화함으로써 API와 클라이언트 간의 통신이 더욱 명확해지고, API의 사용성과 유지보수성이 향상됩니다. 모든 API 요청에 대해 일관된 응답 형식을 제공함으로써 클라이언트 개발자가 API를 더 쉽게 이해하고 사용할 수 있게 됩니다.