RESTful 스타일 프로그래밍에서는 HTTP 메소드를 빌딩 블록으로 사용해야합니다. 어떤 방법이 고전적인 CRUD 방법과 일치하더라도 약간 혼란 스럽습니다. GET / 읽기 및 삭제 / 삭제는 충분히 분명합니다.
그러나 PUT / POST의 차이점은 무엇입니까? 생성 및 업데이트와 일대일로 일치합니까?
답변
Create = PUT with a new URI
POST to a base URI returning a newly created URI
Read = GET
Update = PUT with an existing URI
Delete = DELETE
PUT은 PUT과 함께 사용되는 URI의 존재 여부에 따라 Create와 Update에 모두 매핑 할 수 있습니다.
POST는 Create에 매핑됩니다.
수정 : POST는 일반적으로 Create에 사용되지만 Update에 매핑 할 수도 있습니다. POST는 부분 업데이트 일 수도 있으므로 제안 된 PATCH 방법이 필요하지 않습니다.
답변
핵심은 당신이 dem 등식 변화를 하고 있는지 아닌지 입니다. 즉, 메시지에 대해 두 번 조치를 취하면 마치 한 번만 수행 된 것처럼 “같은”것이 존재하는 경우, dem 등 전한 변경 사항이 있으며 PUT에 매핑되어야합니다. 그렇지 않으면 POST에 맵핑됩니다. 클라이언트가 URL을 합성하도록 허용하지 않으면 PUT은 업데이트에 가깝고 POST는 Create를 잘 처리 할 수 있지만 가장 확실한 유일한 방법은 아닙니다. 클라이언트가 자신이 만들고자 /foo/abc
하는 내용을 알고 있고 어떤 내용을 넣을지를 안다면 PUT처럼 잘 작동합니다.
POST에 대한 정식 설명은 무언가를 구매하려고 할 때입니다. 이는 아무도 모르게 반복하고 싶지 않은 행동입니다. 대조적으로, 주문에 대한 발송 주소를 설정하는 것은 PUT으로 잘 수행 할 수 있습니다. 6 Anywhere Dr, Nowhereville
한 번, 두 번 또는 백 번 으로 보내라는 메시지는 중요하지 않습니다 . 여전히 동일한 주소입니다. 이것이 업데이트라는 의미입니까? 가능 … 백엔드 작성 방법에 따라 다릅니다. (결과가 동일하지 않을 수 있습니다. 자원 표현의 일부로 PUT을 마지막으로 수행했을 때 사용자에게 다시보고 할 수 있으므로 반복 된 PUT이 동일한 결과를 초래하지는 않지만 결과는 여전히 기능적으로 “동일”해야합니다.)
답변
나는 같은 대답을 찾고 있었고 여기에 IBM의 말이 있습니다.
IBM 링크
POST Creates a new resource. GET Retrieves a resource. PUT Updates an existing resource. DELETE Deletes a resource.
답변
현재 (2016) 최신 HTTP 동사는 GET, POST, PATCH , PUT 및 DELETE입니다.
개요
- HTTP GET-선택 / 요청
- HTTP PUT-업데이트
- HTTP POST-삽입 / 생성
- HTTP PATCH- 완전한 리소스 표현을 PUT 할 때 번거롭고 더 많은 대역폭을 활용하는 경우 (예 : 열을 부분적으로 업데이트해야하는 경우)
- HTTP 삭제-삭제
도움이 되었기를 바랍니다!
REST API 설계에 관심이 있으시다면이 책을 읽으십시오. 웹 사이트 온라인 버전 github 저장소
답변
stormpath의 훌륭한 YouTube 비디오 대화가 실제로 이것을 설명하며 URL은 비디오의 올바른 부분으로 건너 뛰어야합니다.
또한 REST API를 만드는 데 시간을 투자 할 생각이라면 한 시간 이상 이야기하지만 매우 혼란 스럽습니다.
답변
구체적인 상황에 따라 다릅니다 .. 그러나 일반적으로 :
PUT = 구체적인 URI로 구체적인 자원을 업데이트하거나 변경합니다.
POST = 주어진 URI의 소스 아래에 새로운 리소스를 만듭니다 .
즉
블로그 게시물을 편집하십시오.
PUT : / blog / entry / 1
새로운 것을 만드십시오 :
POST : / blog / entry
PUT은 요청 전에 새로운 리소스의 URI가 명확한 일부 상황에서 새로운 리소스를 생성 할 수 있습니다. POST는 다른 여러 유스 케이스도 구현하는 데 사용할 수 있으며 다른 유스 케이스 (GET, PUT, DELETE, HEAD, OPTIONS)는 다루지 않습니다.
CRUD 시스템에 대한 일반적인 이해는 GET = 요청, POST = 작성, Put = 업데이트, DELETE = 삭제입니다.
답변
REST의 빌딩 블록은 주로 리소스 (및 URI)와 하이퍼 미디어입니다. 이러한 맥락에서, GET
자원의 표현을 얻는 방법입니다 (실제로 SELECT
CRUD 용어 로 맵핑 될 수 있음 ).
그러나 CRUD 작업과 HTTP 동사간에 일대일 매핑이 반드시 필요한 것은 아닙니다. 사이의 주요 차이점 PUT
과 POST
그들의 나무 등 속성에 관한 것입니다. POST
또한 일반적으로 PUT
완전히 새로운 리소스 표현을 보내는 것을 의미 하므로 부분 업데이트에 더 일반적으로 사용됩니다 .
나는 이것을 읽는 것이 좋습니다.
- http://roy.gbiv.com/untangled/2009/it-is-okay-to-use-post
- http://roy.gbiv.com/untangled/2008/rest-apis-must-be-hypertext-driven
HTTP 사양 도 유용한 참고 자료입니다 :
PUT 메소드는 동봉 된 엔티티가 제공된 Request-URI 아래에 저장되도록 요청합니다.
[…]
POST와 PUT 요청의 근본적인 차이점은 Request-URI의 다른 의미에 반영됩니다. POST 요청의 URI는 동봉 된 엔터티를 처리 할 리소스를 식별합니다. 해당 리소스는 데이터 수락 프로세스, 다른 프로토콜의 게이트웨이 또는 주석을 허용하는 별도의 엔터티 일 수 있습니다. 반대로 PUT 요청의 URI는 요청으로 둘러싸인 엔티티를 식별합니다. 사용자 에이전트는 URI가 의도 된 것을 알고 서버는 다른 자원에 요청을 적용해서는 안됩니다. 서버가 요청을 다른 URI에 적용하기를 원하는 경우,