【发布时间】:2019-02-16 20:41:31
【问题描述】:
这是我之前在PUT or POST HTTP verb when calling API endpoint which performs both UPDATE and INSERT?发帖的后续问题
我有一个 RESTful Web API(用 ASP .Net Core 2.1 编写),它从消费客户端应用程序接收“更改日志”。这是一个 JSON 类,其中包含在客户端应用程序以离线模式工作时对数据库执行的所有修改。一旦客户端应用程序上线,它通过向 API 发送自上次同步以来发生的所有更改,将其数据库与在线/实时数据库同步。因此,它会向 API 发送一个变更集/变更日志,其中包含各种表/对象的 UPDATE、INSERT 和 DELETE 列表。
在 API 方面,我实际上并没有从实时数据库中删除任何内容 - 我只是将内容标记为已删除(因此我将布尔字段设置为 true,即 deleted = true)。所以从技术上讲,API 只对数据库执行 INSERTS 和 UPDATES
API的action方法在成功完成后应该返回什么状态码?由于它结合了 INSERTS 和 UPDATES,它应该返回 201 Created 吗?或者只是一个200 OK?或者如果只执行了更新,则为 200 OK,如果执行了任何插入,则为 201?另外,在响应正文中,由于我实际上并不打算返回正文中的任何 ID 或对象(因为会更新和插入多个对象),所以我只想返回纯文本,说明更新了多少对象,如何许多被插入,有多少被标记为已删除。这可能吗,甚至是个好主意?
谢谢
【问题讨论】:
标签: rest httpresponse asp.net-core-webapi http-response-codes httpresponsemessage