HTTP DELETE 요청에 매개 변수를 제공하는 것과 관련하여 신뢰할만한 것이 있습니까?
내 시나리오는 "정말 삭제 하시겠습니까?"를 모델링하는 것입니다. 대본. 경우에 따라 리소스 상태에 따라 요청 된 삭제가 유효하지 않을 수 있습니다. 삭제 확인이 필요한 시나리오를 직접 상상할 수 있습니다.
우리가 채택한 해결책은 삭제 요청에 매개 변수를 전달하여 삭제를 진행해도 괜찮음을 표시하는 것입니다 ( "? force_delete = true").
예 :
DELETE http://server/resource/id?force_delete=true
나는 그것이 이후로 여전히 편안하다고 믿습니다.
(a) DELETE의 의미는 변경되지 않습니다-사용자는 여전히 정상적인 DELETE 요청을 보낼 수 있지만 409에서 실패 할 수 있으며 응답 본문에서 이유를 설명합니다. 어떤 경우에는 사용자에게 프롬프트 할 이유가 없기 때문에 설명 할 가치가 없기 때문에 실패 할 수 있습니다.
(b) Roy의 논문에는 REST의 정신에 위배된다고 제안하는 것이 없습니다. HTTP가 REST의 한 가지 구현이기 때문에 HTTP 매개 변수를 전달하는 것이 중요한 이유는 무엇입니까?
누군가 이것이 왜 RESTful하지 않은 이유를 설명하는 명확한 진술을 알려 줄 수 있습니까?
관련 질문에 대해 사용자가 force_delete를 지정하지 않으면 반환됩니다 409 Conflict
. 가장 적합한 응답 코드입니까?
후속 조치
좀 더 연구 한 후에 DELETE에 매개 변수를 추가하면 몇 가지 원칙을 위반 할 수 있다고 생각합니다.
첫 번째는 구현이 "유니폼 인터페이스"를 위반할 가능성이 있다는 것입니다 ( Roy 논문의 5.1.5 섹션 참조)
'force_delete'를 추가하여 이미 잘 정의 된 DELETE 메소드에 추가 제약 조건을 추가합니다. 이 제약은 우리에게만 의미가 있습니다.
확인 대화가 실제로 UI 문제이므로 모든 클라이언트가 삭제를 확인하지는 않기 때문에 "5.1.2 클라이언트-서버"를 위반한다고 주장 할 수도 있습니다.
누군가 제안?