문제

"Restful Web Services"의 저자 인 Sam Ruby는 부분 업데이트를 위해 HTTP의 사용에 반대하는 것 같습니다. http://intertwely.net/blog/2008/02/15/embrace-extend-then-innovate

명확하지 않은 것은 부분 업데이트가 얼마나 업데이트되는지입니다 ~해야 한다 일어나십시오. 그의 블로그 맨 아래 근처에서 댓글을 달았 듯이 HTTP 패치를 사용하는 것이 HTTP Put에 대해 "패치 문서"를 사용하는 것보다 어떻게 더 나은지는 확실하지 않습니다.

Sam이 HTTP를 오용하는 것에 반대하는 것에 대해 나오지만 HTTP 패치의 사용을 옹호하지 않는 것 같습니다.

편안한 부분 업데이트를 어떻게 제출해야합니까?

도움이 되었습니까?

해결책

블로그 게시물의 의견에서 볼 수 있듯이 부분 업데이트를 수행 할 수있는 방법은 없습니다. Sam Ruby, Joe Gregario, Mark Nottingham, Mark Pilgrim, Bill de Hóra 등과 같은 헤비급 선수가 합의에 도달 할 수 없다면, 우리가 무엇을 희망 하는가.

내가 염려하는 한, 나는 너무 걱정하지 않을 것입니다. 귀하에게 적합한 부분 업데이트 미디어 유형을 만들고 패치를 사용하여 의도를 나타내고 계약에 계약에 도달하면 서버를 변경하여 두 형식을 모두 수락하십시오.

최악의 죄가 있으면 REST API가 저지르는 것이 풋/패치를 학대하고 있다는 것에 감사하십시오.

다른 팁

현재 2013 년입니다 - 부분 업데이트에 패치를 사용해야합니다 - JSON -PATCH를 사용하여 http://tools.ietf.org/html/rfc6902 또는 http://www.mnot.net/blog/2012/09/05/patch) 또는 XML-Patch 문서 (참조 http://tools.ietf.org/html/rfc7351). 그러나 제 생각에는 JSON-PATCH는 비즈니스 데이터에 가장 적합합니다.

JSON/XML 패치 문서가 포함 된 패치에는 부분 업데이트를위한 매우 스트라이트 전진 의미가 있습니다. 원본 문서의 수정 된 사본과 함께 Post를 사용하기 시작하면 부분 업데이트를 위해 곧 "이 속성을 무시"하거나 "이 속성을 빈 가치 " - 그리고 그것은 결국 해킹 된 솔루션의 토끼 구멍을 내려서 결국 자신의 패치 형식을 초래할 것입니다.

여기에서보다 심도있는 답변을 찾을 수 있습니다. http://soabits.blogspot.dk/2013/01/http-put-patch-or-post-partial-updates.html.

업데이트 :이 RPC입니까?

글쎄, RPC를 서버에 명령을 보내는 것으로 정의하는 경우 모든 HTTP 작업은 RPC 호출입니다. 자원을 얻거나 새 진술을하거나 다시 삭제하십시오. 각각은 명령 보내기 (동사) GET로 구성됩니다. /PIT/DELETE 등 및 선택적 페이로드. HTTP 실무 그룹 (또는 그 누구도)가 고객이 리소스에 대한 부분 업데이트를 수행 할 수있는 새로운 동사 패치를 도입 한 것입니다.

서버로 전체 표현을 보내는 것 외에 다른 것이 RPC 스타일로 간주되면 정의상 부분 업데이트는 편안 할 수 없습니다. 이 관점을 가질 수는 있지만 웹 인프라 뒤에있는 사람들은 다르게 말하면서이 목적을 위해 새로운 동사를 정의했습니다.

RPC는 HTTP를 통한 터널링 방법 호출에 관한 것입니다. 예를 들어 비누를 사용하여 메소드 이름과 매개 변수를 래핑하는 것과 같이 웹의 중개자에게는 보이지 않는 방식입니다. 이러한 작업은 페이로드 내부의 메소드와 매개 변수를 정의하는 표준이 없기 때문에 "보이지 않는"것입니다.

Media Type Application/JSON -PATCH와 패치와 비교하십시오 - 동사 패치는 잘 정의 된 의미를 가지며 페이로드가 소유 한 다른 잘 정의 된 공개 형식으로 인코딩되므로 작업의 의도는 웹의 모든 중개자에게 명확하게 보입니다. 웹 (IETF)의 공통 권한에 의해. 순 결과는 모든 사람에게 완전한 가시성이며 응용 프로그램 별 비밀 의미론은 없습니다.

REST는 또한 "Serendipitous Reuse"에 관한 것입니다. Application/JSON -PATCH를 통한 패치는 정확히 동일하게 수행하는 응용 프로그램 특정 프로토콜을 발명하는 대신 기존 표준을 재사용하는 것입니다.

부분 업데이트 미디어 유형을 홈 양조하고 아직 표준 패치 방법을 사용하는 대신 자원의 일부에 자신의 URI를 제공 할 수 있습니다.

HTTP 패치에는 이제 RFC가 있습니다. HTTP 패치 RFC

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top