RFC 9457

RFC 9457은 그 후속 버전으로, HTTP API의 오류 응답을 구조화된 형식으로 전달하기 위한 표준이다.
이 문서는 RFC 7807을 대체하며, 이전 버전에서의 경험과 피드백을 반영하여 몇 가지 중요한 개선사항을 도입했다.

RFC 9457의 주요 개선사항

RFC 9457은 RFC 7807을 기반으로 다음과 같은 주요 개선점을 포함하고 있다.

  1. 문제 유형(type) 필드의 명확화

    • 기존: type 필드는 문제의 유형을 식별하는 URI로 사용되었지만, 그 사용 방식이 모호할 수 있다.
    • 개선: type 필드의 사용을 명확히 정의하고, 공용 레지스트리를 통해 표준화된 문제 유형을 관리하도록 권장하고 있다.
  2. 여러 문제의 표현 지원

    • 기존: 단일 문제만을 표현하는 데 중점을 두었다.
    • 개선: 여러 개의 문제를 한 번에 표현할 수 있는 메커니즘을 도입하여, 복합적인 오류 상황을 더욱 효과적으로 전달할 수 있게 되었다.
  3. 확장성 및 상호 운용성 향상

    • 기존: 확장 필드의 사용에 대한 지침이 제한적이었다.
    • 개선: 확장 필드의 사용에 대한 명확한 지침을 제공하고, 다양한 시스템 간의 상호 운용성을 향상시켰다.

RFC 9457의 적용 예시

RFC 9457을 준수하는 오류 응답의 예시

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
HTTP/1.1 400 Bad Request
Content-Type: application/problem+json

{
  "type": "https://example.com/probs/invalid-input",
  "title": "Invalid input provided",
  "status": 400,
  "detail": "The 'email' field must be a valid email address.",
  "instance": "/register",
  "errors": [
    {
      "field": "email",
      "message": "Invalid email format."
    }
  ]
}

이 예시에서 errors 필드는 확장 필드로, 입력 필드별 상세 오류 정보를 제공하고 있다.

RFC 9457의 장점

  • 표준화된 오류 표현: 클라이언트가 오류를 일관되게 처리할 수 있다. ​
  • 명확한 오류 유형 정의: type 필드를 통해 오류의 의미를 명확히 전달 가능하다.
  • 복합 오류 처리: 여러 오류를 한 번에 전달하여 클라이언트가 종합적인 대응을 할 수 있다.
  • 확장성: 추가 정보를 포함하여 다양한 상황에 대응할 수 있다.

용어 정리

용어설명

참고 및 출처