Asp.net web api 由于其他依赖关系导致删除失败时,ASP.NET Web API删除操作的正确响应代码

Asp.net web api 由于其他依赖关系导致删除失败时,ASP.NET Web API删除操作的正确响应代码,asp.net-web-api,httpresponse,http-response-codes,Asp.net Web Api,Httpresponse,Http Response Codes,在我的ASP.NET WEB API控制器中,我公开了与HTTP谓词等价的操作:-Post、Put、Get和Delete,如下所示:- PostLocation PutLocation DeleteLocation GetLocation GetAllLocations 位置对象在另一个称为设备的对象中引用,该对象指示设备的安装位置 现在,当我使用位置ID调用DeleteLocation操作时,只有当该位置未在任何设备中引用时,删除才会成功。如果它们在任何设备中被引用,则删除操作应发送一个响应

在我的ASP.NET WEB API控制器中,我公开了与HTTP谓词等价的操作:-Post、Put、Get和Delete,如下所示:-

PostLocation
PutLocation
DeleteLocation
GetLocation
GetAllLocations
位置对象在另一个称为设备的对象中引用,该对象指示设备的安装位置

现在,当我使用位置ID调用DeleteLocation操作时,只有当该位置未在任何设备中引用时,删除才会成功。如果它们在任何设备中被引用,则删除操作应发送一个响应,指示该位置已被引用且无法删除

我的问题是:-删除操作应该发送什么正确的HttpResponse代码来指示由于这种引用而导致的故障,以及应该在响应正文中给出什么?

我将看到或409冲突。你的选择最适合你的情况

至于响应主体,无论返回什么消息,都要尽可能详细。错误应该是例外,所以分配这些额外的字节以尽可能地帮助开发人员

我们使用的JSON结构借鉴了apigee的同事们给出的建议

  • 消息-可以向实际用户显示的友好描述性消息
  • developerMessage-更适合开发人员在查看文档时保存的消息
  • 代码-自定义错误代码以在HTTP代码上展开
  • moreInfo-文档的URL

查看apigee,了解有关错误和状态代码的更多详细信息。

有什么建议吗?有没有人处理过类似的场景?