我想使用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方式如何響應這種查詢?
經過一番研究,我最後的意見是:
- 讓產物(123)工作的是
- 在$過濾器的情況下= SKU EQ 123/ID EQ 123 HTTP 302和Location頭響應指向產品(123)。
- 在產品(123)的情況下?$ filter = sku eq 123以400(壞請求)響應,因爲它很愚蠢。或者,也許用302重定向到產品(123)..
但是如何處理最後一種情況?