Руководство по API
Обмен данными с BestDoctor осуществляется по REST API.
Авторизация
Для авторизации используется схема Token-Based Authentication.
Токен предоставляется Партнёру в рамках интеграции с BestDoctor.
В случае потери токена необходимо обратиться в службу технической поддержки.
Схема взаимодействия
Некоторые операции могу занимать продолжительное время, например, калькуляция или ручная обработка. В этом случае устанавливается таймаут, при наступлении которого возвращается текущий статус Заказа. Если этот статус не является терминальным, необходимо производить опрос (polling) о состоянии Заказа до его попадания в терминальный статус.
Таймаут
Таймаут ответа на запрос по-умолчанию 3 секунды. По достижении таймаута возвращается информация о текущем состоянии Заказа. Если Заказ не находится в одном из терминальных статусов, необходимо выполнять опрос состояния Заказа.
Таймаут можно изменить с помощью query-параметра await_timeout
В этом случае схема взаимодействия выглядит следующим образом:
Подход с опросом применяется для методов-действий, которые запускают изменения статуса Заказа, например, создание или подтверждение оплаты.
Коды ответов
Код | Описание |
---|---|
200 | Успешный ответ. |
201 | Успешный ответ, заказ создан. |
400 | Ошибка валидации тела запроса. |
401 | Ошибка аутентификации. |
403 | Доступ запрещен. |
404 | Заказ не найден. |
420 | Ошибка бизнес-логики. Обратитесь в службу технической поддержки. |
500 | Внутренняя ошибка. Обратитесь в службу технической поддержки. |
SLA переходов
Максимальное время пребывания Заказа в нетерминальных статусах:
Статус | Время |
---|---|
VALIDATION | 5 мин. |
CALCULATION | 5 мин. |
CALCULATED | 1 мин. |
PROCESSING | 5 мин. |
Если SLA не выполняется, необходимо обратиться в службу технической поддержки.
Схема опроса
Опроса состояния Заказа рекомендуется с постоянно увеличивающимися интервалами в зависимости от SLA. Например, если SLA статуса составляет 5 минут, то схема опроса может выглядеть следующим образом:
- 1 сек.
- 10 сек.
- 1 мин.
- 5 мин.
Спецификация OpenAPI
Генерация API-клиента
Спецификация OpenAPI позволяет сгенерировать файлы API-клиента на любом языке программирования или фреймворке, который поддерживает OpenAPI-генератор.
Это позволяет упростить интеграцию с API Партнёрских Заказов.
- Документация OpenAPI-генератора
- Список поддерживаемых языков программирования и фреймворков