Database RESTAPI应该如何使用服务器';什么时候约会?
我正在使用“lastAccessed”datetime字段的资源创建一个数据库服务器。此字段必须随服务器每次读取的时间而更新,但不能随查询而更新。如果我想允许客户端随意更新此字段,我应该如何设计RESTAPI 我想了几个选择,但没有一个是正确的Database RESTAPI应该如何使用服务器';什么时候约会?,database,rest,datetime,server,Database,Rest,Datetime,Server,我正在使用“lastAccessed”datetime字段的资源创建一个数据库服务器。此字段必须随服务器每次读取的时间而更新,但不能随查询而更新。如果我想允许客户端随意更新此字段,我应该如何设计RESTAPI 我想了几个选择,但没有一个是正确的 GET/api/resources/{resource\u id} 即使这是一个GET,它也会更新“LastAccess”字段 PATCH/api/resources/{resource\u id}with{lastcessed:“垃圾值”} 忽略来自
GET/api/resources/{resource\u id}
即使这是一个GET,它也会更新“LastAccess”字段
PATCH/api/resources/{resource\u id}
with{lastcessed:“垃圾值”}
忽略来自客户端的值,并随服务器时间更新“LastAccess”
POST/api/resources/{resource\u id}/update上次访问时间
无负载
合同中约定的专用端点
PUT/api/resources/{resource\u id}/lastAccessed
无负载
此API的目的是传达此调用将用服务器的默认值(在本例中为服务器的时间)替换“lastAccessed”字段
这是一个棘手的问题。执行
GET
请求通常不会影响任何有意义的响应
所以我会选择你另外三个选择中的一个
您的POST
和PUT
示例很好,尽管我看不出向该端点发送“垃圾值”的理由
您可以设置一个标志,如setLastAccessed:true
。您的补丁
正文的内容不需要与任何其他内容进行1:1的关联
我可能会在
/api/resources/{resource\u id}
或/api/resources/{resource\u id}/update last accessed time
上发布一篇POST
,并给出更新last accessed time
的具体说明,谢谢分享您的想法!顺便说一句,目前的答案似乎被缩短了。你能修好它吗?@Efreeto我不知道;i don’我不知道那句话的意思,所以我把它删掉了