OData를 사용하고 HTTP 캐싱의 이점을 얻고 싶습니다. "하나의 엔티티에 하나의 URI가 있음"규칙을 정했습니다. 하나의 엔티티에 쿼리를 수행하는 방법에는 여러 가지가 있습니다, 함께 제품을 말할 수 SKU = 123 (PK 인) :HTTP 캐싱 OData 쿼리를 처리하는 올바른 방법은 무엇입니까?
/MyService.svc/Product(123)
또는
/MyService.svc/Product?$filter=sku eq 123
또는
/MyService.svc/Product(123)?$filter=sku eq 123
이 제품을 쿼리하는 가장 모호한 방법은 제목을 통해입니다 :
/MyService.svc/Product?$filter=title eq 'Some handy product'
(이 쿼리는 하나의 엔티티 - 제품 123을 반환합니다.)
내 질문 : 가장 비슷한 OData-way 어떻게 이러한 종류의 쿼리에 응답합니까?
몇 가지 조사 후, 마지막 의견입니다 : $ 필터의 경우
- 하자 제품 (123) 작품으로 = HTTP (302) 및 위치 헤더 SKU EQ 123/아이디 EQ (123) 응답 제품 (123)을 가리 킵니다.
- 제품 (123)의 경우? $ filter = sku eq 123이 400 (Bad Request)으로 응답하려면 바보이기 때문에. 또는 302 리디렉션을 사용하여 제품 (123) ...
하지만 마지막 사례는 어떻게해야할까요?