programing

REST API의 JSON 응답에 null 값을 포함해야 합니까?

i4 2023. 3. 2. 22:00
반응형

REST API의 JSON 응답에 null 값을 포함해야 합니까?

저는 RESTful API를 디자인하고 개발 중입니다.API에 대해 실용적이고 자원 지향적인 접근방식을 취하고 있습니다(자원 지향적이고 균일한 인터페이스, 주소 지정성은 있지만 실제 HATEOAS는 없습니다).단, 오브젝트의 null 값에 접근하는 방법은 불분명합니다.

API 응답에 null 값을 가진 필드를 포함해야 합니까?

예:

{
    "fieldA": "AAA",
    "fieldB": null
}

또는 시스템에 이러한 필드에 대한 데이터가 없는 경우 이러한 필드를 모두 생략해야 합니까?

예:

{
    "fieldA": "AAA"
}

최근 API-Craft에서 이에 대한 논의가 있었습니다.일반적인 합의는 값의 누락과 null 값의 포함 사이에 의미적 차이가 있을 수 있다는 것이었다.

특정 사용 사례에 대해 얻을 수 있는 의미적 가치가 없다면 API의 대상 소비자를 보고 해당 값을 생략하면 문제가 발생할 수 있는지 생각해 보십시오.

확실한 승자는 없다.또, 고객은, 기술적으로 이것에 관한 어떠한 관습에도 의존해서는 안 됩니다.고객은 어느 쪽의 형태도 기대해서는 안 됩니다.

  • 대역폭 사용량을 줄이기 위해 값을 삭제하는 것은 일반적으로 정당화되지 않습니다(늘 필드의 수가 많고 대역폭에 현저하게 문제가 있는 경우를 제외).
  • 인간 독자가 실제 값을 쉽게 볼 수 있도록 null 값을 제거하는 것은 일반적으로 정당화되지 않으며 API는 man-machine 인터페이스가 아닙니다.
  • 인간 독자가 문서 구조를 보다 쉽게 볼 수 있도록 null 값을 유지하는 것은 일반적으로 정당화되지 않으며, API는 man-machine 인터페이스가 아니며, API 응답은 API 문서가 아닙니다.
  • 지저분한 클라이언트가 특정 방법으로 json을 구문 분석할 수 있도록 null 값을 유지하는 것은 일반적으로 정당화되지 않습니다.클라이언트는 관용 리더로서 깔끔하게 쓰여져야 합니다.
  • 대응하는 Create Method(POST/PUT)가 null의 명시적인 전달을 필요로 하는 경우에만 null 값을 유지하는 것은 타당하지만 일반적으로 달성하기 어렵다.
  • 문서에 자체 소유 클라이언트가 있지만 일반적으로 달성하기 어려운 경우 작성 시 요청과 동일한 출력을 유지합니다.
  • 해야 할 입니다.?fields=foo,bar 모든 null을 반환하는 것은 에 반하는 것으로 .

언급URL : https://stackoverflow.com/questions/15686995/should-null-values-be-included-in-json-responses-from-a-rest-api

반응형