发布重定向在支持搜索时,获取模式并在RESTful基于资源的服务中使用

时间:2010-03-12 13:55:18

标签: http rest post

如果我有一个基于HTTP的RESTful服务,并且我想POST一个搜索资源并使用PRG模式将URL返回到搜索结果资源,我必须在服务器上保留搜索结果资源。

这是个好主意吗?

如果我坚持搜索结果资源,它会持续多长时间?

我可以通过某种HTTP标头来控制它吗?

干杯

AWC

2 个答案:

答案 0 :(得分:2)

我不认为REST或HTTP可以为您提供任何指导。搜索结果应该持续多长时间,这完全取决于它们的大小,计算的成本,数据的动态性,请求相同结果的频率以及您希望在硬件上花多少钱获得表现。

话虽如此,你可以使用410 Gone来产生有趣的效果。经过一段时间后,您可以丢弃结果,但保留查询参数和保存的资源URL。如果在结果被丢弃后收到对该URL的请求,则可以使用正文中的查询参数返回410 Gone。可以提示客户端决定是否要重新发出查询。

根据数据,您甚至可以隐藏客户端的重新查询。但是,根据返回的数据类型可能会误导客户端。

答案 1 :(得分:0)

您会注意到,当您进行谷歌搜索时,带有结果的页面实际上会在您的网址中进行搜索,如果您在Google主页上检查表单,该表单实际上已设置为GET。因此,在搜索方案中,实际上通常只使用单个获取请求而不是发布请求,因为您使用它来根据特定查询“获取”搜索结果。

当您“发布”数据时,“POST”事件可能会更有用,例如当您在留言板上发布内容时。您正在将数据添加到数据库,留言板,用户配置文件等。

如果获取搜索结果对您的系统征收高额税,那么您可能希望根据搜索字词查看缓存结果的方法,以便每当针对该字词提出请求时,结果为更容易拉在一起。