【问题标题】:How to deal with number of pageviews in RESTful calls?如何处理 RESTful 调用中的浏览量?
【发布时间】:2011-10-10 10:59:38
【问题描述】:

我希望请求返回一些“分析”作为请求的一部分:最重要的是,我希望 每个 GET 请求返回 GET 请求的次数调用。

这是否与 RESTful 概念根本不兼容?

如果它不是根本不兼容,我如何让我的 RESTful 服务器为每个 GET 请求返回不同的结果,根据这个问题的定义,每个 GET 请求都意味着下一个 GET 请求必须返回不同的东西?

如果根本不可能以 RESTful 方式进行,我应该放弃 REST 还是完全放弃 GET?

P.S:这是我关于 SO 的第一个问题,所以很明显,除非我达到 15 个代表,否则我将无法发表评论,所以如果评论者/回答者可以投票给我,这样我就可以成为其中的一员。 SO社区:)

【问题讨论】:

    标签: http rest get


    【解决方案1】:

    这里原则上不存在与 REST 的不兼容。您应该考虑不断变化的资源不会从缓存中受益的效果(假设您不希望访问计数过时)。您还应该认为该数字始终“最终一致”;也就是说,如果您有很多并行执行,它将代表某些请求子集的计数。而且您还应该考虑在“X-Visit-Count”标头而不是主要有效负载中返回计数,以使该功能更通用并避免污染您返回的任何有效负载,并可能允许更好的缓存。但是,资源在每次 GET 时都返回不同的表示形式,这根本不是“反对 REST”。

    【讨论】:

    • 该死,我不明白(双关语;)我的印象是 REST 意味着 GET 请求是幂等的。我将如何“最终保持一致”?通过在回复中设置过期时间?这样我就可以两全其美:仍然允许缓存并最终保持一致?除此之外,我不知道这样的计数器会有多“污染”:如今的大多数网站(StackOverflow、Google+、FaceBook 和基本上所有的论坛)都清楚地显示了网页浏览量。这已成为许多网站的固有部分。
    • 幂等性仅与调用者的 POV 相关。如果服务器改变了某些东西,那是服务器的责任。从客户端 POV 来看,1 GET 和 1000 GET 之间不能有区别。 IOW,如果调用者打算更改 - 使用 POST。
    • @Jan Algermissen:这很有趣......在 StackOverflow 之类的情况下,GET(我认为)可以触发 “查看 9 次”要转换为“查看 10 次”,您认为调用者有意还是无意更改?
    • 调用者打算查看页面。如果您开发一个机器人来访问该站点以增加计数器,我会认为这是对发现的服务器行为的滥用。此外:服务器可以实施技术以使视图计数更准确(例如,防止对同一客户端的多个即时视图进行计数),而不会影响预期结果。
    • @Jan Algermissen:首先我从不谈论机器人; ) 那么我不是 100% 同意 “调用者打算查看该页面。”。事实是 “调用者打算查看该页面,该页面显示一个计数器,告诉该页面已被查看多少次,调用者希望看到该计数器”:这就是 SO 和大多数论坛工作:他们确实显示了一个计数器,并且该计数器传达了非常有用的信息。那么...在这种情况下,调用者是否打算进行更改?
    猜你喜欢
    • 2017-09-17
    • 2011-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多