我正在开发部署系统,需要在池中的全部或部分机器上的池上部署一些应用程序。为了简单起见,可以说我对api只有3个要求。这个REST API是否正确设计?
- 部署
- 取消
- 状态
我现在感到困惑的设计为上述行动的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似乎并不正确。这是一个很好的设计吗?我已经在网上阅读了很多关于在REST中映射操作的文章,这些文章只会增加我的困惑。我的申请中没有任何CRUD。我只是想确保我以正确的方式做到这一点。有人能指出设计中的缺陷吗?任何指针都会有帮助。
我看不错! –
我会删除网址中的“/ api”部分,但其余部分看起来不错。 – Farid
谢谢你的评论。 –