Google JSON Style Guide

FeelsBotMan·2025년 4월 21일
0

https://google.github.io/styleguide/jsoncstyleguide.xml

Google의 JSON Style Guide는 JSON 데이터의 일관성과 가독성을 높이기 위한 규칙과 권장사항을 제시한다. 주요 요점을 아래와 같이 정리할 수 있다.

{
  "apiVersion": "...",
  "context": "...",
  "id": "...",
  "method": "...",
  "params": { ... },
  "data": { ... },
  "error": { ... }
}
  • 최상위 필드들
    • apiVersion: 이 API의 버전 ("v1" 등)
    • context: 이 요청이 어떤 컨텍스트에서 발생했는지 설명 (예: 트래킹 ID)
    • id: 요청 또는 응답의 고유 식별자
    • method: 호출할 메서드 이름 (RPC 스타일일 때 사용)
    • params: 호출할 메서드에 전달할 인자들 (파라미터 객체)
    • data: 성공 시 응답
    • error: 실패 시 응답

data와 error는 동시에 포함되면 안 되고, 둘 중 하나만 있어야 한다.

data 객체 (성공 시 응답)

실제로 유저가 받고자 하는 데이터를 포함한다.
대부분의 유용한 정보는 이 안에 들어간다.

  • kind: 리소스 종류 (예: "calendar#event")
  • fields: 필드 필터링용 (필요한 필드만 지정할 때 사용)
  • etag: 데이터의 버전(캐싱 용도)
  • id: 데이터 자체의 ID
  • lang: 언어 코드 ("en", "ko")
  • updated: 마지막 수정 날짜 (RFC 3339 형식)
  • deleted: 삭제 여부 (boolean)
  • currentItemCount, totalItems, itemsPerPage, startIndex, pageIndex, totalPages: 페이지네이션 관련 정보
  • pageLinkTemplate: 페이지 링크 형식 템플릿
  • next, nextLink, previous, previousLink, self, selfLink, edit, editLink: 링크 객체들 (REST 스타일 탐색을 위한 링크)
  • items: 실제 데이터 배열 (예: 게시글 리스트, 유저 리스트 등)

error 객체 (오류 발생 시 응답)

요청이 실패했을 때 포함된다. data는 이 경우 생략된다.

  • code: 에러 코드 (HTTP 상태 코드와 유사)
  • message: 에러 메시지 (사용자 또는 개발자용)
  • errors: 에러 상세 항목들 (복수 가능)
  • errors[].domain: 에러가 발생한 도메인 (예: "global" 등)
  • errors[].reason: 발생 이유 (예: "notFound" 등)
  • errors[].message: 구체적 설명
  • errors[].location: 어떤 파라미터에서 에러가 났는지
  • errors[].locationType: 예: "parameter"
  • errors[].extendedHelp: 추가 설명 URL
  • errors[].sendReport: 버그 리포트 제출 링크

결론

이 가이드는 API 설계자와 개발자들이 상호운용성, 유지보수성, 일관성을 확보하는 데 큰 도움이 된다.

profile
안드로이드 페페

0개의 댓글