Hacker News 의견
  • JSON Patch는 모든 JSON 문서를 수정할 수 있도록 설계되어 복잡하게 느껴짐. 데이터 세트를 약간 제한하면 문서를 더 간단하게 패치할 수 있음. 예를 들어, Firebase에서는 null 값을 저장할 수 없으며 null로 설정하면 삭제를 의미함. 이처럼 간단한 제한을 통해 PATCH를 쉽게 구현할 수 있음. "null은 삭제를 의미"라는 점 외에는 새로운 것을 배울 필요가 없다는 점이 API의 훌륭한 기능임.

  • JSON의 구분자로 /를 사용하는 것은 이상한 선택임. JSON은 JS의 하위 집합이므로 .를 구분자로 기대했음. /를 보면 백엔드 사람들이 작성한 사양일 것 같고, 경로를 URL로 만들어 상대/절대 경로의 모호성을 해결하려는 것 같음.

  • 경로가 문자열이 아닌 배열이어야 한다고 생각함. 그렇지 않으면 /를 키에서 이스케이프해야 하고 경로 문자열을 구문 분석해야 함. 이는 임의의 JSON 문서를 처리할 수 없게 만듦.

  • JSON Patch를 한 번 사용한 적이 있으며, 예상치 못한 문제를 빠르게 해결하기 위한 해킹으로 사용했음. 해외 계약자들이 텍스트 데이터를 단어 수준에서 주석을 달 수 있도록 웹 인터페이스를 구축했음. 데이터가 작은 청크로 주석이 달릴 예정이었으나, 전체 문서에 할당되면서 주석이 저장되지 않는 문제가 발생했음. JSON Patch를 발견하고 업로드 코드를 패치만 사용하도록 수정했음.

  • JSON Patch의 경로 지정 방식에서 배열의 항목을 인덱스가 아닌 식별 키-값 쌍으로 선택할 수 있는 표준 구문이 필요함. 이는 특히 항목을 추가하거나 이전 버전의 JSON 항목의 차이를 분석할 때 중요함.

  • JSON Patch의 강점 중 하나는 멱등성임. JSON Patch 작업은 의도하지 않은 부작용 없이 안전하게 재시도할 수 있음. 그러나 배열에 항목을 추가할 수 없다는 점은 놀라웠음.

  • MongoDB 업데이트 쿼리와 유사하게 작동함. 로컬 파일에서 전체 MongoDB를 실행하지 않고도 업데이트 언어를 사용할 수 있는지 궁금함.

  • JSONDiffpatch와 JSON Patch의 비교가 필요함. JSONDiffpatch는 브라우저와 노드/클라우드플레어 워커 등에서 잘 작동함.

  • JSON Patch를 외부 파트너에게 배우도록 설득하는 데 어려움이 있었음. 고객 대상 API에서 사용했으며, 사용자가 이해하고 채택하도록 많은 노력을 기울였음.

  • JSON Pointer 사양이 "URL-y"하게 느껴져 메타-JSON 구문을 건너뛸 수 있을 것 같음. "test"와 "copy"는 JSON Patch 사양에서 고유하며, 여러 편집을 한 번에 수행하는 "트랜잭션"도 가능함.