在PUT方法上添加参数是否是一个好习惯?

时间:2019-07-03 04:33:38

标签: spring rest put

说,put方法可以通过给定的参数返回includeExtraTitle字段 但是,在PUT方法上添加参数是个好主意吗? 这是一个好习惯吗?

@PutMapping(value = "/articles/{articleId}") 
Article put(@RequestParam(value = "includeExtraTitle", defaultValue = "false") boolean includeExtraTitle)

2 个答案:

答案 0 :(得分:1)

是的,这是绝对好的方法。

为HTTP请求类型(例如POST,PUT等)添加参数是很好的建议方法。

答案 1 :(得分:1)

/articles/{articleId}?includeExtraTitle=true

是资源的完美标识符。

PUT是统一接口中的一种方法,因此将PUT语义应用于此资源很好(如果您决定不支持该资源,则将以405 Method Not Allowed进行响应)。

/articles/{articleId}
/articles/{articleId}?includeExtraTitle=true
/articles/{articleId}?includeExtraTitle=false

您应该理解,从客户端的角度来看,这些是不同资源的标识符。由于标识符不匹配,PUT /articles/{articleId}?includeExtraTitle=false不会invalidate客户端在本地缓存的/articles/{articleId}副本。

这三种资源碰巧使用相同的“端点”,这是您实施的偶然事件,并且隐藏在统一接口后面的客户端中。

单个资源具有多个表示形式是很正常的,尽管不一定很常见。因此,请检查您的用例是否更适合更改内容类型,而不是更改URI。