나는 컬렉션의 도매 교체를 허용했습니다. 예를 들어 PUT ~/people/123/shoes
본문이 전체 컬렉션 표현 인 경우.
이는 클라이언트가 항목을 검토하고 일부를 정리하고 일부를 추가 한 다음 서버를 업데이트하려는 작은 하위 항목 컬렉션에 대해 작동합니다. 그들은 모두 삭제하기 위해 빈 컬렉션을 넣을 수 있습니다.
이것은 GET ~/people/123/shoes/9
PUT가 그것을 삭제하더라도 여전히 캐시에 남아 있음을 의미 하지만 이는 단지 캐싱 문제이며 다른 사람이 신발을 삭제하면 문제가 될 것입니다.
내 데이터 / 시스템 API는 항상 만료 시간이 아닌 ETag를 사용하므로 서버는 각 요청에 맞고 데이터를 변경하려면 올바른 버전 / 동시성 헤더가 필요합니다. 읽기 전용이고보기 / 보고서가 정렬 된 API의 경우 만료 시간을 사용하여 오리진의 조회수를 줄입니다. 예를 들어 리더 보드는 10 분 동안 유용 할 수 있습니다.
같은 훨씬 더 큰 컬렉션의 ~/people
경우 여러 삭제가 필요하지 않으며 유스 케이스가 자연스럽게 발생하지 않는 경향이 있으므로 단일 DELETE가 잘 작동합니다.
미래에는 REST API를 구축하고 감사와 같은 동일한 문제와 요구 사항을 충족 한 경험을 통해 GET 및 POST 동사와 이벤트에 대한 디자인 만 사용하는 경향이 있습니다 (예 : POST 주소 변경 이벤트). 자체 문제 세트가 함께 제공됩니다. :)
또한 엄격한 "Fielding zealot"REST API 설계를 싫어하는 실질적이고 유효한 클라이언트 측 이유가 있고 생산성 및 생산성을 위해 프런트 엔드 개발자가 더 엄격한 백엔드 API를 사용하는 자체 API를 구축 할 수 있도록 허용합니다. 캐시 계층화 이유.