2012-02-22 110 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