API의 응답 코드는 어떻게 관리하는 것이 좋을까?

2022. 2. 22. 00:12iOS/네트워크

왜?

프로젝트 중 API의 응답 코드를 피처별로 나누다가 의문이 생겼다. 응답 코드를 어떻게 관리하는 것이 효율적일까?

현재 응답 코드는 API 별로 200, 201, 202, 401, 406, 500, 501코드로 내려온다. 응답마다 메시지를 다르게 해야해서 API응답 코드 enum도 API 갯수만큼 만들고 있다.

에러는 다른데 응답 코드가 같아서 생기는 일이다. 

현재 API 응답 코드




Twitter의 응답 메시지 및 코드

{
  "errors": [
    {
      "parameters": {
        "end_time": [
          "2026-10-31T23:59Z"
        ]
      },
      "message": "Invalid 'end_time':'2026-10-31T23:59Z'. 'end_time' must be a minimum of 10 seconds prior to the request time."
    }
  ],
  "title": "Invalid Request",
  "detail": "One or more parameters to your request was invalid.",
  "type": "https://api.twitter.com/2/problems/invalid-request"
}

 

트위터처럼 벡엔드에서 응답 코드와 에러 코드를 별개로 관리하고 메시지를 보내준다면 다음과 같은 이점이 있다.

1. 메시지 내용이 변경되었을 때, 프론트에서 관리하지 않기 때문에 변경에 대한 공수가 줄어든다.

2. 프론트에서는 에러 메시지 처리에 대한 공수를 줄이고 출력만 하면 된다.

 

참고)

트위터 API error code