Руководство программиста
API предоставляет доступ к расчётному ядру ПО АвтоГРАФ.WEB и позволяет получить как данные по структуре схемы (объекты мониторинга, геозоны, водители, инструменты, параметры и т.д.), так и рассчитанные данные по объектам мониторинга за произвольные периоды в разных видах.
При работе с API необходимо соблюдать следующие правила
- Запросы к сервису должны быть аутентифицированы с помощью токена, который получается с помощью метода Login. Данный токен должен передаваться либо в query string с названием session, либо в http header с названием AG-Token.
- API поддерживает методы GET и POST.
- API умеет принимать данные как в query string (GET), так и в body (POST) в виде wwwform/urlencoded или application/json. Второй способ предпочтителен, когда используется большое количество данных (например, список из сотен геозон).
- Все запросы имеют обязательный параметр schemaID, содержащий ID схемы, в контексте которого выполняется запрос (исключение — схеманезависимые запросы типа GetRoute)
- Права доступа, ограничения на аккаунт, на список объектов, период и т.д. — берутся сервером из настроек аккаунта, под которым выполнялся Login.
- На данный момент сервером выдается бессрочный токен, однако следует делать Login для получения токена перед каждым пакетом запросов. Выполнение данного метода никак не влияет на загрузку сервера, однако позволяет гарантировать, что токен актуален.
- Если необходимо выполнить ряд однотипных запросов (например, получение рейсов по списку объектов мониторинга), имеет смысл выполнить один запрос с передачей списка ID, чем отправлять одновременно все запросы по всем этим объектам.
Соглашения по структуре объектов
- Каждый объект типа «объект мониторинга», «геозона», «водитель», «инструмент» и «задача» имеет уникальный идентификатор (ID).
- Гарантируется уникальность ID объектов и их групп в пределах схемы и типа объектов. То есть все объекты мониторинга и их группы будут иметь уникальные ID.
- Объект получает ID в момент создания и на протяжении жизни объекта он никогда не меняется. При переносе объекта между группами его ID сохраняется.
- На данный момент в качестве ID объектов используется GUID в виде 36-символьной регистронезависимой строки. Следует рассматривать этот ID только как регистронезависимую строку, не делая предположений, что данный формат (GUID) сохранится в будущем. Однако гарантируется, что максимальная длина ID объекта не будет более 36 символов.
- Если в запросе присутствует в качестве параметра список ID, в нем всегда поддерживаются передача как ID групп, так и отдельных объектов. Если передан ID группы, то будет выполнен запрос так, как будто в него передали полный список ID всех вложенных объектов и подгрупп этой группы.