API 特别兴趣小组/当前设计/动作
< API 特别兴趣小组 | 当前设计(重定向自 API 工作组/当前设计/动作)
分析
最一致的地方是所有动作都使用 POST 方法。
Nova 和 Trove 使用 /action,而 Heat 使用 /actions
Nova 中无参数的动作在如何表示无参数方面非常不一致。
有一种情况是 服务器动作 (os-instance-actions) 将动作作为实际资源。
当前设计
Nova
POST /v2/{tenant_id}/servers/{server_id}/action
{
"some_action": {
"param1": "value1",
"param2": "value2"
}
}
或者
{
"some_action": null
}
或者
{
"some_action": {}
}
或者
{
"some_action": "None"
}
GET /v2/{tenant_id}/servers/{server_id}/os-instance-actions
GET /v2/{tenant_id}/servers/{server_id}/os-instance-actions/{action_id}
Trove
POST /v1.0/{accountId}/instances/{instanceId}/action
{
"some_action": {
"param1": "value1",
"param2": "value2"
}
}
或者
{
"some_action": {}
}
Heat
POST /v1/{tenant_id}/stacks/{stack_name}/{stack_id}/actions
{
"some_action": null
}