说,put方法可以通过给定的参数返回includeExtraTitle字段
但是,在PUT
方法上添加参数是个好主意吗?
这是一个好习惯吗?
@PutMapping(value = "/articles/{articleId}")
Article put(@RequestParam(value = "includeExtraTitle", defaultValue = "false") boolean includeExtraTitle)
答案 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。