Я работаю над API, который отвечает за управление долгосрочными заданиями.
Вы создаете рабочие места, публикуя на
/jobs/
, который дает вам объект с полем прогресса, например
{"progress_percentage": 0.0, "id": 1}
Затем вы можете внести изменения в экземпляр этого задания, установив
/jobs/<job-id>/
Во время выполнения заданий я хочу нажать на API, чтобы увеличить прогресс по мере выполнения задания, начиная с 0.0 и заканчивая 100.0.
Любая заданная задача может быть разбита на более мелкие задачи, эти задачи могут выполняться одновременно, и им могут быть назначены «чанки» выполнения.
Я хочу, чтобы каждый кусок увеличивал прогресс относительно назначенного ему прогресса.
Например, если задача 1 выполняется и ей назначен блок прогресса 30%, и в этой задаче размера 5 есть цикл for, я бы хотел увеличить процент выполнения на 6% для каждой итерации цикла for, независимо от каков текущий процент прогресса.
Другие задания могут просто захотеть установить процент (не увеличивая его)
Мой вопрос заключается в том, что было бы наиболее желательным способом сделать это с точки зрения разработки API.
Я вижу несколько вариантов
1
PATCH /jobs/<job-id>/
с полезной нагрузкой
{"progress_percentage": {"increase": 6.0}}
увеличить
или
{"progress_percentage": {"set": 35.0}}
установить.
2
POST /jobs/<job-id>/progress_percentage/
с полезной нагрузкой
{"amount" 6.0} or [6.0]
увеличить или
PATCH /jobs/<job-id>/
с полезной нагрузкой
{"progress_percentage" 30.0}
установить.