FAQ по REST API для интеграций

Короткие ответы на частые вопросы перед началом интеграции с REST API Ветменеджера.

Подробная техническая документация:


Один API-ключ работает на весь домен или только на один филиал?

API-ключ относится к домену Ветменеджера. Отдельные API-ключи по филиалам в REST API не настраиваются.

Если в домене несколько филиалов, интеграция должна передавать нужный `clinic_id` и создавать связи с клиникой там, где это требуется.

Подробнее: Мультиклиниковость.


Где получить API-ключ?

API-ключ включает пользователь с максимальными правами:

Настройки -> Интеграция с сервисами -> Rest Api

Ключ дает полный CRUD-доступ к данным домена, поэтому его нужно передавать только разработчикам, которые отвечают за интеграцию.

Подробнее: REST.API - основная информация.


Есть ли тестовая среда?

Отдельная публичная sandbox-среда для REST API не описана.

Для тестирования интеграции используйте отдельный тестовый домен или тестовую клинику.


Есть ли лимиты на количество запросов к REST API?

Ограничения на частоту запросов к самому REST API не заложены.

Есть ограничения другого типа:

  • в списочных GET-запросах максимальный `limit` - 100 записей в одном ответе;
  • для получения всех записей используйте пагинацию через `offset`;
  • у сервиса получения актуального хоста `https://billing-api.vetmanager.ru/host/$domain` есть rate limit 20 запросов в минуту с одного IP-адреса (результат нужно кешировать).

Подробнее: REST.API - основная информация


Нужно ли получать актуальный URL клиники?

Да. Хост клиники может меняться, поэтому перед отправкой запросов нужно получить актуальный URL по домену.

Результат нужно кешировать и не запрашивать перед каждым обращением к REST API.

Подробнее: REST.API - основная информация.


Что делать, если нужно выгрузить больше 100 записей?

Используйте постраничную выгрузку через `limit` и `offset`.

Пример:

```text
GET /rest/api/client?limit=100&offset=0
GET /rest/api/client?limit=100&offset=100
GET /rest/api/client?limit=100&offset=200
```

В ответе есть `totalCount` - общее количество записей по фильтру.


Куда отправлять не-разработчика?

Если клиент спрашивает, где включить API-ключ, что такое API, где взять домен или как передать ключ разработчику, ответ можно дать в поддержке по этой статье.

Если клиент просит спроектировать интеграцию, написать код, разобрать ошибки запросов или подобрать модели под бизнес-сценарий, это задача разработчика или интегратора.

👆 На этом пока всё