이것은 동사가 반환되지 않는다는 사실은 내가 추측하고있어 사용중인 하이퍼 미디어 형식, HAL 인의 결정이다 포럼을 https://groups.google.com/forum/#!forum/hal-discuss
을 논의 HAL에 많이 요청 (또는 어쩌면되었습니다 컬렉션 + json). 일부 형식 DO에는 동사 정보가 포함됩니다.
실제로 HAL을 사용하면 원할 경우 링크 개체에 사용자 지정 필드를 포함시킬 수 있지만 표준 클라이언트는이를 해석하는 방법을 모르기 때문에이를 권장하지 않습니다.
그러나 나는 결국 동사가 무가치하다는 것을 알았습니다.
먼저 인간 2 기계에서 사용자는 설명서를 읽습니다. HAL은 다른 매개 변수, 동사, 헤더 등으로 해당 링크를 요청할 때의 효과를 설명하는 사람이 읽을 수있는 문서로 링크를 역 참조합니다 (CURIE는 현재 없음).
다음은 해당 용도에 대한 것입니다. 진정으로 RESTful이기 위해서는 모든 동사에 응답해야합니다 ... 동사가 OK라는 응답을하지 못할 수도 있습니다. 405를 반환하는 HTTP 기반 앱의 경우 매우 적절합니다. 404를 반환하는 것은 아닙니다! 500은 더 나쁠 것입니다. 405 번에는 요청한 리소스에 사용할 수있는 메소드가 포함되어야합니다.
다음 기계 2 기계 (및 h2m 비트)의 경우 HTTP를 통해 액세스 할 때 응용 프로그램 (RESTful 응용 프로그램이 반드시 HTTP가 아닌 것처럼 대답에 http를 피하려고합니다. 그들 중 %는 가능한 일에 대한 설명을 얻기 위해 자원 URL에 대해 OPTIONS 메소드 (http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html)를 사용해야합니다.
여기 내가 많은 사람들이 번민하고있는 것을 보았습니다. OPTIONS의 응답은 무엇입니까? 사람들이 잊는 것은 콘텐츠 유형 협상입니다. 요청자는 그들이 기대하는 옵션 정보의 형식을 말해야합니다. 수락 : some-machine-language/xml 또는 application/language + json. 일부 RFC 또는 표준은 이러한 컨텐트 유형을 정의하며 API는 지원하는 형식을 식별 할 수 있습니다. 텍스트/HTML에 대한 지원을 포함 시켜서 사람이 읽을 수있는 문서뿐만 아니라 어떤 동사가 지원되는지 알려줄 것을 제안합니다. 이것은 h2m 시나리오를 훌륭하게 다룹니다.
동일한 콘텐츠 형식 협상은 지원되지 않는 메서드에 대한 정보를 반환 할 때 유용 할 수 있습니다. 서버는 클라이언트가 이해할 수있는 내용 유형을 의미 론적으로 설명하는 방법을 허용 할 수 있습니다.
내가 지적하고자하는 마지막 것은 그 방법이 클라이언트의 의도를 암시하는 것입니다. 이 리소스를 PUT하거나 해당 리소스를 삭제하고 싶습니다. 서버는 요청을 받아들이고 요청으로 인해 어떤 상태 전이가 발생했는지 응답을 반환해야합니다. 따라서 API가 모든 요청에 대해 클라이언트의 가능한 의도를 식별하도록하는 것은 다소 어리석은 일입니다. 클라이언트는 자신이 원하는 것을 알고 있고, 시도해야하며, 불가능하다면이를 처리해야합니다.
굉장한 응답! –