REST API设计:应使用空请求体的PATCH还是HEAD方法?
应该选择PATCH方法而非HEAD方法
HEAD方法不适合这个场景:HEAD是GET的特殊变体,仅返回响应头、不返回响应体,核心用途是获取资源元数据,且属于REST规范里「安全且幂等」的方法——多次调用不会改变服务器状态。但你的需求是修改用户的
receptionDate属性,属于变更服务器状态的操作,用HEAD完全不符合它的设计语义。PATCH方法更贴合需求:PATCH的作用就是对资源做部分更新,你的场景正好是更新用户资源(
/users/me)的单个属性(最后浏览时间)。虽然请求体是空的,但这个请求的意图很明确:触发服务器为当前登录用户把receptionDate更新为当前时间。这种用法完全符合PATCH的语义,而且服务器端自行生成时间戳还能避免客户端时间不一致的问题。如果觉得空请求体不够直观,也可以在请求体里加个简单标识,比如{"update_reception_date": true},但空请求体配合这个端点的语义也完全通顺。
内容的提问来源于stack exchange,提问作者famas23
相关产品推荐
相关产品推荐

