0

在我的 ASP.NET WEB API 控制器中,我公开了与 HTTP 动词等效的操作:- 发布、放置、获取和删除,如下所示:-

PostLocation
PutLocation
DeleteLocation
GetLocation
GetAllLocations

Location 对象在另一个称为 Devices 的对象中引用,该对象指示设备的安装位置。

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

我的问题是:- 应该从 Delete 操作发送的正确 HttpResponse 代码是什么,以指示由于此类引用而导致的失败以及响应正文中应该给出什么?

4

1 回答 1

0

我会查看HTTP 400 错误请求或 409 冲突。您的电话最适合您的情况。

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

我们使用的 JSON 结构借鉴了 apigee 人员的建议。

  • 消息 - 可以显示给实际用户的友好描述性消息
  • developerMessage - 更适合开发人员的消息,以保存他们查找 doco
  • code - 自定义错误代码以扩展 HTTP 代码
  • moreInfo - 文档的 URL

查看 apigee博客“Rest API 教程”,了解有关错误和状态代码的更多详细信息。

于 2014-06-03T05:00:09.103 回答