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

时间:2018-10-17 07:07:07

标签: c# asp.net-web-api asp.net-core asp.net-core-webapi

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

在第二种动作方法中,我获取了对象列表,也许其中一些是重复的,而有些则不是。我正在尝试通过添加非重复项并发送回重复错误的方法来进行最佳实践。这里的问题是我应该如何回应?确定响应或冲突?更进一步,我希望消费者知道巫婆对象是创建的,而巫婆对象不是,对于添加的对象,我想在列表中发回对象本身,对于重复的对象,我想用重复标记发给他们! 在这里,重要的是要获得最佳实践解决方案,而不仅仅是复杂的解决方案。

TL; DR Web API的post方法有一个操作,用于创建对象列表,当某些对象重复而另一些对象不是清晰且最佳实践的方式时,响应方式是必须的。

1 个答案:

答案 0 :(得分:1)

REST的最佳实践并非一成不变,您可能会在做事上遇到很多意见。一种方法是,由于报告结果时出现问题,您完全不提供小组操作。

还有其他方法可以完成组操作。例如。 Facebook使用Batch requests,而Google使用Multipart messages for batching

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