2008-08-23 6 views
13

서버가 웹 서비스를 RESTful로 분류 할 수 있도록 허용해야하는 HTTP 동사의 최소 집합은 무엇입니까? RESTful 웹 서비스 및 HTTP 동사

무엇 내 호스팅이 및 을 PUT, DELETE 를 허가하지 않는 경우?

이 내가POST을 GET 영원히 단지 과 함께 행복하게 살 수있는, 실제로 중요한가요?


업데이트 : 답변의 사람들에 대한 덕분에 Roger's answer 때문에 빌 베너 스 및 엘리오트 러스티 해롤드 인터뷰에 대한 링크의 아마 최고였다. 나는 그것을 얻는다.


답변

20

예, PUT 및 DELETE없이 살 수 있습니다. 왜

이 문서를 알려줍니다 http://www.artima.com/lejava/articles/why_put_and_delete.html

동안 진정한 RESTafrians이 이단이 될 수있는 현실 세계에서, 당신은 당신이 무슨에 당신이, 수있는 일. 당신이 할 수있는만큼 합리적이고 당신이 할 수있는 자신 만의 규칙과 같은 일관성,하지만 당신은 확실히에만 핸들 + 게시물을 가져옵니다

2

GET 및 POST를 사용하는 경우에도 여전히 RESTful입니다. 웹 서비스는 GET 또는 POST 만 필요한 작업을 수행 할 수 있으므로 괜찮습니다.

1

오늘날의 웹 브라우저 RP P와 D

없이 좋은 편안하고 시스템을 구축 할 수 있습니다. 예를 들어 Rails에서 PUTS + DELETE는 숨겨진 양식 필드를 통해 "위장"됩니다.

프레임 워크에서 PUTS + DELETE를 "지원"하는 몇 가지 해결 방법이없는 한 지금은 걱정하지 마십시오.

3

X-Http-Verb-Override : DELETE inst를 사용할 수도 있습니다. HTTP 삭제 중. 이것은 HTTP 동사를 변경할 수없고 GET 및 POST 만 지원하는 Silverlight 클라이언트에도 유용합니다 ...

2

REST는 프로토콜 구현이 손상된 경우 프로토콜 준수를 허용합니다. 구현의 깨진 부분을 피해 가야한다). 따라서 REST에서 DELETE 나 PUT과 같이 일반적으로 지원되지 않는 동사를 나타내는 다른 방법을 사용할 수 있습니다.

편집 :

휴식 API가 작성 아웃 제외하고 통신 프로토콜에 대한 변경 사항을 포함 할 수 없습니다 또는 세부 사항을 고정 : 여기에 생성 된 하나 정의 된 REST입니다 필딩에서 인용한다 HTTP의 PATCH 메소드 또는 링크 헤더 필드와 같은 표준 프로토콜의 덜 지정된 비트가 포함됩니다. HTML이 HTTP의 메소드 세트를 정의한다고 믿을 정도로 어리석은 브라우저와 같은 깨진 구현에 대한 해결 방법은 별도로, 또는 적어도 부록에서 정의되어야하며, 대안은 결국 쓸모 없게 될 것이라고 예상해야합니다. [여기서 실패 란 리소스 인터페이스가 일반적인 것이 아니라 객체 별이라는 것을 의미합니다.]

+0

이 POV에서 모든 웹 브라우저가 고장났습니다. 그러나 "REST 클라이언트"는 웹 브라우저를 의미한다고 말했습니까? –

+0

당신은 나의 요점을 놓치고 있습니다. 나는 브라우저를 언급하지 않았다. 하지만 어쨌든 PUT 및 DELETE 등의 적절한 사용 (호스팅 서비스에서 허용하는 경우) 및 "깨진"클라이언트에 대한 몇 가지 해결 방법을 허용해야합니다. – aehlke