이 질문은 아마도 속임수이지만 비슷한 것을 찾을 수 없습니다 (정확히 무엇을 검색해야할지 모르겠 음). URL 또는 HTTP 요청 데이터에서 PUT 식별자를 가져 오지 않습니까?
내가 이런 편안한 자원 URL을 말해봐 : 내 6 번 항목을 편집 할 수 있습니다이 페이지에서 형태가있다/my/items/6/edit
. 양식을 제출하면 /my/items/6
에 PUT X-HTTP-Method-Override 헤더가 있습니다.
제 질문은 어디에서 서버 처리기가 값 "6"을 가져와야합니까? 그것은 URL에서 그것을해야합니까? 또는 HTTP POST 데이터에서 (양식에 숨겨진 입력 필드로 ID가 표시되었다고 가정)?
URL에서 온 것 같습니다. 그러나 이것은 그것을 꺼내기 위해 조금 더 문제가 있습니다. .NET MVC에서 예를 들어, 당신은 컨트롤러 액션 메소드에서이 좋아 얻을 수 있습니다 : 그것은 가치보다 더 많은 문제처럼 보인다
var id = int.Parse(ControllerContext.RouteData.Values["id"].ToString());
을 .... 그러나 HTTP POST 데이터에서 가져 오면 기술적으로 항목 # 6의 데이터를 /my/items/7
에 게시/넣을 수 있으며 서버는 여전히 항목 데이터를 ID # 6에 저장합니다.
표준 사례가 있습니까?
이 ("/ 내/items/6/edit ")는 확실히 REST가 아닙니다. 양식이 REST의 일부가 아닙니다. REST로 1) GET/my/items/6 그리고 2) my/items/6을 업데이트하십시오. http://kellabyte.com/2011/09/04/clarifying-rest/ 및 http://en.wikipedia.org/wiki/Representational_state_transfer#Guiding_principles_of_the_interface를 참조하십시오. – jmclem
@jmclem ../my/items/6에 GET 요청을 보냈다고 가정 해보십시오. 웹 서버가 항목을 편집하기 위해 읽기 전용 HTML 페이지 또는 HTML 양식을 반환할지 여부를 어떻게 알 수 있습니까? – danludwig
이 작업을 직접 수행하지 않아도됩니다. 데이터 흐름에 REST를 사용합니다.하지만 HTTP 콘텐츠 교섭 (http://en.wikipedia.org/wiki/Content_negotiation)을 사용하려고합니다. '수락 : text/html'또는 '수락 : application/json'또는 기타. – jmclem