我正在开发一个部署系统,该系统需要在池中的所有或部分机器上的池中部署一些应用程序。为了简单起见,假设我对 api 只有 3 个要求。
- 部署
- 取消
- 地位
我现在对为上述操作设计 REST api 调用感到困惑:这是我的想法。如果有效负载为空,我将部署在池中的所有机器上。
http://my-endpoint/api/{pool-name}/deploy
Payload:
{
"machines" : [
"machine-1.fqdn",
"machine-2.fqdn",
"machine-3.fqdn"
]
}
Response:
{
"status": "OK",
"jobId": "9999"
}
然后,客户端可以根据 jobId 轮询状态或取消部署:
http://my-endpoint/api/{pool-name}/status/{jobId}
http://my-endpoint/api/{pool-name}/cancel/{jobId}
现在,jobId 在整个部署系统中是唯一的,因此在 api 中使用 {pool-name} 表示“状态”和“取消”似乎并不正确。这是一个好的设计吗?我在网上阅读了许多关于 REST 中映射操作的文章,它们只会增加我的困惑。我的应用程序中没有任何 CRUD。我只是想确保我以正确的方式做这件事。有人可以指出设计中的缺陷吗?任何指针都会有所帮助。