2012-08-30 2 views
0

이 모든 REST 물건에 아주 새롭다.RESTful 검색. 실제 리소스 또는 URI를 반환 하시겠습니까?

내 API를 설계 중이며 검색 쿼리에서 반환해야 할 항목이 확실하지 않습니다. 나는 단지 쿼리 전체와 일치하는 모든 객체를 반환 할 것이라고 가정하고 있었지만 조금만 읽은 후에 HATEOAS을 대신 URI 목록을 반환해야한다고 생각하고 있습니까?

이 항목을 캐싱 도움이 될 수 있지만 실제 개체 정보를 가져 오는 데 필요한 후속 다중 HTTP 요청에 의해 생성 된 많은 오버 헤드가 걱정됩니다.

오해? 대신 객체 인스턴스 또는 URI를 반환 할 수 있습니까?

답변

2

IMHO "순수 REST"와 "실제 REST"는 완전히 다른 두 개의 짐승 인 것을 항상 기억하는 것이 중요합니다.

처음에 쿼리의 URI 목록을 어떻게 반환합니까? 예를 들어 돌아온 경우 application/json, 이것은 확실히 클라이언트에게 말하지 않습니다. 어떻게 내용을 해석해야합니까? 따라서 상호 작용은 이미 HATEOAS와 충돌하여 대역 외 정보 (클라이언트가 마술 적으로 이미 필요한 데이터를 찾을 곳을 알고 있음)에 의해 주도되고 있습니다.

질문에 대답하기 : URI 대신 객체 인스턴스를 반환하는 것이 좋습니다. 일반적으로 이것은 클라이언트가 어디로 갈지 모른 채이 모든 데이터를 생성하기 때문에주의해야합니다. 그걸 써. 그렇기 때문에 하이브리드 접근법을 자주 볼 수 있습니다. 즉, 객체 인스턴스가 전체 객체가 아니기 때문에 (즉, 서버의 정보 일부가 반환되지 않음) 클라이언트가 전체 표현을 가져올 수 있도록하는 고유 한 식별자가 포함되어 있습니다. 선택한 개체가 그렇게하도록 선택한 경우

3

나는 리소스 목록을 반환하며 해당 리소스에 대한 세부 정보 링크를 제공합니다. Subbu Allamaraju

디자인 모음 자원의 표현으로 쿼리의 응답 - RESTFull 웹 서비스 요리 책 2010

. 적절한 만료 캐싱 헤더를 설정하십시오. 쿼리 이 리소스와 일치하지 않으면 빈 컬렉션을 반환하십시오.