警报系统的 REST API 设计
REST API design for a Alert system
我是 REST API 设计的新手,我想知道如何针对如下定义的问题进行设计。我也概述了我目前的想法,但显然我看到了很多问题
- 一个
Cluster
有Alerts
Alerts
是 Alert_Type
的实例
- 可以将
Alert_Type
分配给 Cluster(s)
。在这种情况下 Cluster
已注册 Alert_Type
的 Alerts
- 一个
Alert_Type
也可以赋值给没有Cluster
- 当实例
Alert_Type
的 Alert
出现在 Cluster
中时,一些操作
当且仅当 Alert_Type
注册到 Cluster
并且 Alert_Type
存在 时才会发生
出于这个问题的目的,我关心 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
对象
现在我的问题:
- 显然我需要绑定
Cluster
和 Alert_Type
对象 - 我
知道复制 Alert_Type
对象的设计不好
Cluster
个对象。所以也许我应该为每个人生成一个 id
Alert_Type
对象并要求 Cluster
POST 发送一个 id
反而?然后在 Cluster
对象 中维护一个 id 列表
- 如果
Cluster
POST 有一堆 Alert_Type
ID
有效但有些无效,我该如何处理?
Alert_Type
的唯一 ID 必须在服务器上生成,
并且 return 回复了 Alert_Type
的 POST 的回复 -
以 REST 兼容的方式执行此操作的正确方法是什么?
- 您认为甚至需要将
Cluster
ID 保存在
Alert_Type
个对象?我能看到需要的唯一原因
这是删除 Alert_Type
的时候 - 然后应该
更新正在监视此 Alert_Type
的 Cluster
个对象
我尽量给你每一个点的回应:
- 是的,您应该使用 Cluster 对象中的 id。
- 你必须return错误结束不要保存任何东西。
- 我应该 return 在 POST 响应中创建的 Alert_Type 的 ID(例如 json {'id': 'theId' }).
- 这取决于 db 实现:如果您可以简单地检索集群连接到删除 Alert_type 我建议您不要保持反向连接,因为如果您这样做,您还有一个字段需要管理。
希望能帮到你
我是 REST API 设计的新手,我想知道如何针对如下定义的问题进行设计。我也概述了我目前的想法,但显然我看到了很多问题
- 一个
Cluster
有Alerts
Alerts
是Alert_Type
的实例
- 可以将
Alert_Type
分配给Cluster(s)
。在这种情况下Cluster
已注册Alert_Type
的 - 一个
Alert_Type
也可以赋值给没有Cluster
- 当实例
Alert_Type
的Alert
出现在Cluster
中时,一些操作 当且仅当Alert_Type
注册到Cluster
并且Alert_Type
存在 时才会发生
Alerts
出于这个问题的目的,我关心 Alert_Type
对象和 Cluster
对象
这些是我可以对 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
对象
现在我的问题:
- 显然我需要绑定
Cluster
和Alert_Type
对象 - 我 知道复制Alert_Type
对象的设计不好Cluster
个对象。所以也许我应该为每个人生成一个 idAlert_Type
对象并要求Cluster
POST 发送一个 id 反而?然后在Cluster
对象 中维护一个 id 列表
- 如果
Cluster
POST 有一堆Alert_Type
ID 有效但有些无效,我该如何处理? Alert_Type
的唯一 ID 必须在服务器上生成, 并且 return 回复了Alert_Type
的 POST 的回复 - 以 REST 兼容的方式执行此操作的正确方法是什么?- 您认为甚至需要将
Cluster
ID 保存在Alert_Type
个对象?我能看到需要的唯一原因 这是删除Alert_Type
的时候 - 然后应该 更新正在监视此Alert_Type
的
Cluster
个对象
我尽量给你每一个点的回应:
- 是的,您应该使用 Cluster 对象中的 id。
- 你必须return错误结束不要保存任何东西。
- 我应该 return 在 POST 响应中创建的 Alert_Type 的 ID(例如 json {'id': 'theId' }).
- 这取决于 db 实现:如果您可以简单地检索集群连接到删除 Alert_type 我建议您不要保持反向连接,因为如果您这样做,您还有一个字段需要管理。
希望能帮到你