나는 더 REST 전문가입니다,하지만 내 2 ¢ 던져 보자
인간의 웹에
, HTML 양식은 종종 검색 결과의 표현에 URI를 구축하는 데 사용됩니다. 문제는 프로그래머블 웹에 폼이 없다는 것입니다. 그러나 당신은 쉽게 유사한 자신을 뭔가 뭔가를 정의 할 수있다, 즉 :
는 이제 application/prs.example.searchdescription+json
말 (하지만이 대답의 끝에서 P.S.을주의 깊게 살펴)하자, 검색에 대한 설명은 미디어 유형을 정의;
사용자 검색을 나타내는 하위 리소스를 표시합니다 (/users/search
).
두 번째 단계는 다른 곳의 하위 리소스에 연결하여 수행됩니다. 예를 들어 클라이언트가 GET /users
을 요청했다고 가정 해 보겠습니다. 여기
POST /users/search
…
Content-Type: application/prs.example.search-definition+json
…
{ criteria: { surname: "Harvey" }, maxResults: 25 }
이 criteria
는의 (부분) 표시를 포함 : 클라이언트는 해당 리소스 URI에 링크 및 POST
검색 사양에 따라 수
{ _links: [ …, { rel: "search", href: "https://stackoverflow.com/users/search" }, …] }
, 예를 들어 : 그것은이 같은 것을받을 수 있습니다 발견되는 객체 이것은 임의로 복잡한 설명으로 만들 수 있습니다.
{ _links: [ { rel: "results", href: "/users?surname=Harvey&maxResults=25" } ] }
클라이언트 수 : 전술 한 바와 같이 요청에
, 서버는 게시 된 검색 결과를 나타내는 자원, 엔터티 본문에 링크를 상태 코드 200 OK
로 회신 할 수 results
관계가있는 URI로 이동하여 URI 자체를 조합하지 않아도 검색 결과를 얻을 수 있습니다.
P. : 처음에이 책을 썼을 때 항상 새로운 미디어 유형을 정의하는 것이 문제가 될 수 있음을 깨닫지 못했습니다. the profile
link relation을 사용하여 Mark Nottingham blogged about "media type proliferation" and how to combat it을 사용하십시오.
나는이 질문을 +10 할 수 있으면 좋겠다. –