REST - 获取随机数GET或POST?

时间:2010-06-06 21:03:26

标签: rest random guid uuid

如何在REST中正确实现随机数生成器?

GET   RANDOM/

或..

POST  RANDOM/

服务器每次都返回一个不同的随机数。

我可以看到两种方式的争论。

3 个答案:

答案 0 :(得分:7)

我会说这与包含当前时间的返回页面相同 - 其中许多是使用GET完成的。抽象地,获取服务器状态的随机数(或时间)不会改变 - 时间和随机数都可以被描述为对外部事件的观察。例如。 http://random.org使用大气噪音。

GET似乎最合适,但需要通过适当的标头禁用缓存,例如

Expires: <Current Time>
Last-Modified: <Current Time>
Cache-Control: no-cache, must-revalidate
Pragma: no-cache

如果您想确保所提供的内容已过期:

  

将回复标记为“已经”   已过期,“原始服务器发送一个   过期日期等于日期   标头值。 (参见规则   部分的到期计算   13.2.4。)

答案 1 :(得分:2)

绝对是GET。即使它可能会修改服务器端状态(如果它使用伪RNG),这只是客户端不应该关心的实现细节。

答案 2 :(得分:-3)

  • 使用GET定义REST调用:结果必须相同 - &gt;不要GET。
  • 使用PUT定义REST调用:调用的结果可以重复,服务器应该没有问题 - &gt;使用PUT

POST是最弱的方法,如果其他方法没用,可以使用。

为什么不GET:GET-call的结果可以是cachet(cache-header,etag oder透明代理),你不会得到随机结果......