我正在開發部署系統,需要在池中的全部或部分機器上的池上部署一些應用程序。爲了簡單起見,可以說我對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
謝謝你的評論。 –