2012-02-22 153 views
0

我們有一個RESTful Web服務與像一個URI模式:無效 「子資源」 時PATCH資源

  • /命令/
  • /命令/ 1
  • /命令/ 1 /變化

我們使用正確的HATEOS鏈接到從/orders/1資源更新日誌在/orders/1/changelog發現鏈接。當我們對/orders/1資源進行更改時,我們通過向資源發送PATCH請求來做到這一點。

任何緩存/orders/1將被PATCH無效,但/orders/1/changelog資源的情況也是如此。

有沒有辦法通過HTTP頭或其他機制使PATCH之後的不同的資源的任何緩存失效?該服務與數據的傳統系統集成在一起,所以沒有簡單的方法來使用ETags或If-Modified-Since來讓服務檢查資源是否無效是不可行的,所以我希望能夠有響應頭文件緩存失效對我來說。

我完全脫離基地嗎?其他選項?

回答

0

這個http://tools.ietf.org/html/draft-nottingham-linked-cache-inv-00規範討論瞭如何使用鏈接頭完成。

+0

這看起來完全像我們需要的。我發現Squid似乎支持LCI,但我沒有看到任何關於HttpWebRequest的支持它的本地方面......任何對此的洞察? – Pete 2012-02-23 13:07:25

+0

@Pete Nah,WinINetProxy不太可能支持它,因爲它是一個非常新的RFC。但是,如果您使用新的HttpClient,則可以創建一個基於標頭清除緩存的MessageHandler。我已經完成了一些與WinINetProxy緩存交互的代碼,這並不太痛苦。 – 2012-02-23 13:21:01

+0

不幸的是,我們被困在.NET 3.5上。我將不得不看看我能否與WinINet一起破解一些東西。 – Pete 2012-02-23 14:05:51