代码之家  ›  专栏  ›  技术社区  ›  Ralph java.is.for.desktop

使用*多*参数调用RESTful服务

  •  6
  • Ralph java.is.for.desktop  · 技术社区  · 14 年前

    在主体中使用带有参数的PUT调用会是RESTful的吗,即使中的意图是不修改服务器?POST看起来不正确,因为它不是幂等的,而PUT是(因此更像GET的行为)。

    3 回复  |  直到 14 年前
        1
  •  4
  •   jbrendel    14 年前

    如果您希望它是RESTful的,您可以这样做:将参数放在服务器上(在您选择的位置),或者您可以发布它们并让服务器为您放置它们。不管是哪种方式,您刚刚创建了一个资源,其中包含您需要的参数。然后发送一个GET来引用那个特定的资源。因此,在回答GET时,服务器知道从何处获取其大量参数。那会很平静。

    考虑一下:PUT告诉代理它们不应该缓存响应,但是重试(通过任何基础结构元素)是绝对可能的,因为它是幂等的(就像GET一样)。什么让你过度紧张?可以缓存响应。但是有这么多的参数,我假设大多数请求都是唯一的,对吧?所以,缓存通常不会带来太多回报。因此,使用PUT似乎是务实的,因而是正确的选择。

        2
  •  6
  •   fumanchu    14 年前

    首先,您可以选择发送以某种方式压缩的参数以形成一个较短的URL。

    GET 也就是说你不能在请求中发送消息体,不管用什么方式 Content-Type -Length 你自己选择。并非所有服务器都支持这一点,但HTTP协议本身支持这一点。

    第三,可以将参数发布到 /queries/ 201 Created 以及一个新的URL(如 /queries/78a65g82 )在 Location 响应头,然后客户端调用它 得到 开(反复,甚至在 Ranges ,如果这是一个好处)检索结果。

        3
  •  1
  •   Snekse Kevin Bourrillion    14 年前

    它违背了休息的精神,但如果它起作用,就要务实。