RESTful Web服务获取随机数动词

时间:2013-12-05 09:30:19

标签: web-services rest

如果您创建一个可以返回随机数的RESTful Web服务,您应该使用什么动词?

我个人的感觉是使用POST,因为你每次都在创建一个新的随机数,但是我听到了一些使用GET的令人信服的论据,因为你基本上得到随机数。

GET也有被缓存的危险

2 个答案:

答案 0 :(得分:3)

在REST中,考虑资源。

如果服务只是返回随机数,那么你实际上并没有创建新的资源(例如新的数字生成器),所以GET感觉合适。

Fowler's article对此主题提供了很好的解释。

答案 1 :(得分:1)

随机数生成器背后的理论认为,具有相同种子的相同随机数算法每次都应产生相同的随机数序列。考虑使用种子J的N个数字的GET动词。

如果您在每次使用N = 1调用此服务时使用相同的种子J,则每次都会得到1个数字,完全相同。

如果您在每次使用N = 50调用此服务时使用相同的种子J,则每次都会获得相同的50个数字。我喜欢这个选项,因为我可以在结果集周围放一个迭代器,当我要求一个随机数(保存往返调用)时,只给我一个数字,然后我有一个我可以指望用于测试的序列。在这种情况下,允许/首选缓存。

如果您在每次调用服务时想要不同的数字,请在获取数字时选择不同的种子J.经常建议的种子是当前时间和日期,它会发生很大变化。

由于我们提供了指定种子的能力,因此该服务仍然是幂等的。