警报系统的 REST API 设计

REST API design for a Alert system

我是 REST API 设计的新手,我想知道如何针对如下定义的问题进行设计。我也概述了我目前的想法,但显然我看到了很多问题

出于这个问题的目的,我关心 Alert_Type 对象和 Cluster 对象

的 REST API 设计和路由

这些是我可以对 Cluster 对象执行的 REST 操作的子集:

POST:创建一个新的Cluster对象。在对象中,名为 registered_alerts 的字段可以包含为此 Cluster

注册的 Alert_Type 个对象

DELETE: 删除现有的Cluster对象

GET(在/alert_types):将return一个Alert_Type对象的列表注册到这个Cluster

这些是我可以对 Alert_Type 对象执行的 REST 操作的子集:

POST: 创建一个新的Alert_Type对象。

DELETE: 删除现有的Alert_Type对象

GET: 获取现有的Alert_Type对象

现在我的问题:

  1. 显然我需要绑定 ClusterAlert_Type 对象 - 我 知道复制 Alert_Type 对象的设计不好 Cluster 个对象。所以也许我应该为每个人生成一个 id Alert_Type 对象并要求 Cluster POST 发送一个 id 反而?然后在 Cluster 对象
  2. 中维护一个 id 列表
  3. 如果 Cluster POST 有一堆 Alert_Type ID 有效但有些无效,我该如何处理?
  4. Alert_Type 的唯一 ID 必须在服务器上生成, 并且 return 回复了 Alert_Type 的 POST 的回复 - 以 REST 兼容的方式执行此操作的正确方法是什么?
  5. 您认为甚至需要将 Cluster ID 保存在 Alert_Type 个对象?我能看到需要的唯一原因 这是删除 Alert_Type 的时候 - 然后应该 更新正在监视此 Alert_Type
  6. Cluster 个对象

我尽量给你每一个点的回应:

  1. 是的,您应该使用 Cluster 对象中的 id。
  2. 你必须return错误结束不要保存任何东西。
  3. 我应该 return 在 POST 响应中创建的 Alert_Type 的 ID(例如 json {'id': 'theId' }).
  4. 这取决于 db 实现:如果您可以简单地检索集群连接到删除 Alert_type 我建议您不要保持反向连接,因为如果您这样做,您还有一个字段需要管理。

希望能帮到你