在我的ASP.NET WEB API控制器中,我公开了相当于HTTP谓词的操作: - Post,Put,Get和Delete,如下所示: -
PostLocation
PutLocation
DeleteLocation
GetLocation
GetAllLocations
Location对象在另一个名为Devices的对象中引用,该对象指示设备的安装位置。
现在,当我使用位置ID调用DeleteLocation操作时,只有在任何设备中未引用该位置时,删除才会成功。如果在任何设备中引用它们,则“删除”操作应发送一个响应,指示该位置已被引用且无法删除。
我的问题是: - 应该从删除操作发送的正确的HttpResponse代码是什么,以指示由于此类引用而导致的失败以及响应正文中应该提供什么?
答案 0 :(得分:0)
我会看HTTP 400 Bad Request或409冲突。您的电话最适合您的情况。
对于响应主体,无论您返回什么消息,都应尽可能详细。错误应该是异常,所以分配这些额外的字节以尽可能地帮助开发人员。
我们使用的JSON结构,借鉴了apigee的人们给出的建议。
检查apigee blog和"Rest API tutorial",了解有关错误和状态代码的详细信息。