用于逻辑执行的正确REST方法

时间:2018-02-04 20:18:12

标签: rest spring-boot

我知道这是有争议的但是什么是正确的HTTP方法,只需要输入并执行逻辑并返回响应。

例如:如果我必须暴露一个带有整数并返回一些数字序列的REST端点?

3 个答案:

答案 0 :(得分:2)

如RFC for HTTP protocol(https://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html)所述,HTTP方法可以是幂等的,不是:

  

方法也可以具有“幂等性”的特性(除了错误或期满问题之外)N的副作用> 0个相同的请求与单个请求相同。方法GET,HEAD,PUT和DELETE共享此属性。此外,方法OPTIONS和TRACE不应该有副作用,因此本质上是幂等的。

因此,如果您的逻辑显着改变了系统的状态 - 您最好使用非幂等方法 - POST。如果通过调用服务方法对系统进行的所有更改仅记录到日志文件 - 请使用安全的HTTP方法,例如GET

答案 1 :(得分:0)

对我而言,因为你没有创建/修改/删除任何资源,所以应该是GET,但我想听听关于这一点的其他意见。

答案 2 :(得分:0)

你所说的并不像REST那样。这听起来更像是RPC调用。 POST通常是“适合其他方法的任何东西”的正确http方法,通常用于RPC调用。