jdi-testing / jdn

0 stars 2 forks source link

Подготовить API для расчёта локаторов по одному #316

Closed AlexeyGirin closed 3 years ago

AlexeyGirin commented 3 years ago

В данный момент, полученные в результате распознования элементов локаторы сразу начинают обрабатываться алгоритмом на сервере автоматически. Мы собираемся изменить это - запуск на расчёт и управление очередью будут осуществляться с клиента. Необходимо подготовить API для засылки локатора на сервер, получение им уникального ID по которому потом можно будет отслеживать его состояния (Queued, In Progress, Done) получить результат в случае если калькуляция завершена. Учесть, что мы планируем останавливать расчёт локатора, а так же - перезапускать его заново (с новыми индивидуальными настройками)

aleksandrovskiys commented 3 years ago

backend ver. 2021-09-05-13.13.00

Добавлены методы:

/schedule_xpath_generation

Создает задачу на расчет xpath и возвращает id задачи по которому можно обращаться в следующих методах.

Доступен через POST запрос, принимает json вида:

{
    "document": "...",  
    "id": "8520359515737429141026100694",  
    "config": {  
            "allow_indexes_at_the_beginning": true,  
            "allow_indexes_in_the_middle": true,  
            "allow_indexes_at_the_end": true 
        }  
}

Возвращает:

{"task_id": "c2577de5-e154-4a14-a897-1bb48d608fa0"}

/get_task_status

Возвращает статус задачи генерации.

Доступен через GET запрос, принимает json вида:

{"id": "c2577de5-e154-4a14-a897-1bb48d608fa0"}

Возвращает:

{"status": "PENDING"}

Возможные статусы: FAILURE - Task failed PENDING - Task state is unknown (assumed pending since you know the id). RECEIVED - Task was received by a worker (only used in events). RETRY - Task is waiting for retry. REVOKED - Task was revoked. STARTED - Task was started by a worker. SUCCESS - Task succeeded

/revoke_task

Отменяет задачу с переданным id, если она уже была начата. Если задача стоит в очереди, то она будет отменена тогда, когда воркер дойдет до её обработки

Доступен через POST запрос, принимает json вида:

{"id": "4f26183b-3e0e-4526-a419-157d453ec35d"}

Возвращает:

{"result": "Task successfully revoked."}

/get_task_result

Возвращает результат генерации для задачи с переданным id.

Доступен через GET запрос, принимает json вида:

{"id": "c2577de5-e154-4a14-a897-1bb48d608fa0"}

Возвращает:

{"result": "c2577de5-e154-4a14-a897-1bb48d608fa0"}

В случае, если в результате работы любого из этих методов возникла ошибка, то вернется json с полем exc. Например:

{"exc": "Generation still in progress."}
AlexeyGirin commented 3 years ago

Ожидаем поддержку в UI

AlexeyGirin commented 3 years ago

Done.