Я работаю над системой развертывания, для которой требуется некоторое приложение, развернутое в пуле на всех или подмножестве машин в пуле. Чтобы это было просто, скажем, у меня есть только 3 требования к api.Правильно ли это REST api?
- развернуть
- отменить
- статус
теперь я запутался о проектировании Вызовы API REST для вышеуказанных действий: Вот что я имею в виду. Если полезная нагрузка пуста, я развертываю на всех машинах в пуле.
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» в URL-адресе, но остальное выглядит отлично. – Farid
Благодарим вас за комментарии. –