代码之家  ›  专栏  ›  技术社区  ›  yekanchi

要插入的某些对象重复时的Web API响应

  •  0
  • yekanchi  · 技术社区  · 6 年前

    我正在使用Asp.net Core 2.0 Web API在SQL Server中创建一些数据库条目。我不想创建重复的行,我想通知API的使用者它正在尝试创建重复的行。我有两个控制器操作来创建这些条目,第一个只接受 object 第二个接受 List<object> 所有这些都将被创建。对于第一个操作方法,如果行是重复的,我用 Http Conflict(409) error 如果没有,我会在OK Http响应中将处理过的对象重新发送回使用者。

    在第二个动作方法中,我得到了一个对象列表,可能其中有些是重复的,有些不是。我试图通过添加不重复的条目并为重复条目发回一个错误来实现最佳实践。问题是我该怎么回答?好的回应还是冲突?此外,我希望消费者知道witch对象已创建,而witch对象未创建,对于添加的对象,我希望以列表形式发回对象本身,对于重复的对象,我希望使用重复标志发回对象!。 对于met来说,重要的是获得一个最佳实践解决方案,而不仅仅是一个复杂的解决方案。

    对于一个webapi,有一个post方法来创建一个对象列表,当一些对象是重复的,而另一些对象不是以一种清晰的最佳实践方式时,响应必须是怎样的。

    1 回复  |  直到 6 年前
        1
  •  1
  •   Maxim Zabolotskikh    6 年前

    其余的最佳实践不是刻在石头上的,你可能会遇到很多关于如何做事情的意见。一种方法是不提供组操作,这完全是因为报告结果时出现问题。

    还有其他方法来完成小组行动。例如Facebook使用 Batch requests ,而谷歌使用 Multipart messages for batching .

    在REST中,您使用资源,因此POST端点应该创建一个资源。您可以将整个项集合视为一个资源,但它应该成功或失败。我首先检查集合中是否有重复项,如果找到,则返回400个错误数据。