Для обеспечения бесперебойной работы команд и серверного оборудования ГЛОНАССSoft убедительно
просим вас соблюдать несколько простых правил при использовании API-команд:

  • Формировать не более 3 отчётов одновременно.
  • Ограничить количество активных сессий одного пользователя с одного IP-адреса до 50.

В случае нарушения этих правил, ГЛОНАССSoft оставляет за собой право принудительно остановить выполнение запросов с определенных IP адресов. 

Содержание страницы:

Действующие ограничения

Между запросами должна быть пауза в 1 секунду (превышение отвергается системой с уведомлением о превышении частоты запросов).

Для работы со всеми методами API необходимо в заголовок добавлять X-Auth (токен авторизации, получаемый методом auth/login).

Пример: X-Auth: 34f4919a-099b-4b7d-8aa1-f478ec2062de.

− При редактировании любой записи (пользователь, объект и т.д) необходимо передавать все параметры записи в теле запроса! Те параметры, значения которых не будут переданы - будут стерты!

Рекомендации

- Для запросов по API рекомендуется наделить пользователя ролью Администратора партнера, в противном случае при выполнении некоторых запросов у него не будет хватать прав (чаще всего сталкиваются с отсутствием прав при запросах сообщений от терминала за период).

Раздел: Авторизация

Авторизация
Адрес сервера всегда следует указывать именно тот, по которому происходит вход в СМТ (https://hosting.glonasssoft.ru/ , https://regions.glonasssoft.ru/ или другие)

POST /api/v3/auth/login

Метод позволяет получить токен авторизации, который необходимо добавлять в заголовок для работы со всеми методами API. В параметрах метода передается имя пользователя и пароль.

Метод запроса: POST

URL запроса: https://hosting.glonasssoft.ru/api/v3/auth/login

В случае успешного выполнения метода, поле «AuthId» содержит токен авторизации «X-Auth».

Параметры в теле запроса (JSON):

{
    "login": "testuser",
    "password": "testuser"
}

Ответ:

{
    "AuthId": "
93c6jg79-b88b-4a35-a2d0-70dg9jc2898b" ,  // токен авторизации         
    "User": "testuser" ,  // имя пользователя

}

Примечание: Время жизни токена авторизации задается в настройках пользователя, там есть параметр длительность сессии. При каждом запросе токен пролонгируется.

ПараметрОписание
loginЛогин пользователя
passwordПароль пользователя
AuthIdТокен авторизации
UserЛогин пользователя

Также  имеется возможность сквозной (/бесшовной) авторизации. Для этого к ссылке ( https://hosting.glonasssoft.ru /  https://regions.glonasssoft.ru) добавьте токен авторизации -  {AuthId}, чтобы попасть сразу в клиента (https://hosting.glonasssoft.ru/login?authId={AUTH_ID})

Проверка авторизации

GET /api/v3/auth/check

Метод позволяет проверить статус авторизации. Метод позволяет проверить активен токен авторизации или нет.

Метод запроса: GET

URL запроса: https://hosting.glonasssoft.ru/api/v3/auth/check

В заголовках запроса: X-Auth: Токен авторизации

Ответ: В случае если сессия активна HTTP ответ «200». В случае если сессия разорвана HTTP ответ «401».

Раздел: Клиенты

Получение информации о клиенте

GET api/v3/agents/{id}

Метод позволяет получить параметры выбранного клиента: наименование, полное наименование, тип, статус и идентификатор клиента-родителя и т.д. Метод возвращает информацию о клиентах с учетом настроек авторизованного пользователя, указанного в запросе:

− информация о клиенте предоставляется при наличии права «Просмотр клиентов»;

Метод запроса: GET

URL запроса: https://hosting.glonasssoft.ru/api/v3/agents/{id}

Запрос должен содержать данные параметра "agentId"

Ответ:
{
    "agentId": "",  

    "parentId": "",
    "parentName": "string",
    "name": "string",
    "fullName": "string",
    "agentInfoType": 0,
    "isForeign": true/false,
    "district": "string", 
    "region": "string",
    "city": "string",
    "inn": "string",
    "kpp": "string",
    "address": "string",
    "addressFact": "string",
    "email": "string",
    "director": "string",
    "bankName": "string",
    "bankBIK": "string",
    "bankRS": "string",
    "bankKS": "string"
  }

ПараметрОписание
agentIdИдентификатор клиента  
parentIdИдентификатор клиента-родителя
parentNameНаименование клиента-родителя
nameНаименование клиента
fullNameПолное наименование клиента
agentInfoTypeТип клиента (0- Клиент, 1 - Партнер, 2 - Группа, 3 - Административная группа, 4 - Тестовый клиент, 5 - Договор)
isForeignИностранный контрагент
districtОкруг
regionРегион
cityГород
innИНН клиента
kppКПП клиента
addressЮридический адрес
addressFactФактический адрес
emailЭлектронная почта
directorФИО руководителя
bankNameБанк
bankBIKБИК
bankRSНомер счета
bankKSКорр. счет

Получение параметров дочерних клиентов

POST /api/v3/agents/find

Метод позволяет получить параметры всех дочерних клиентов: наименование, полное наименование, тип, статус и идентификатор клиента-родителя и т.д. Метод возвращает информацию о клиентах с учетом настроек авторизованного пользователя, указанного в запросе:

− информация о клиентах предоставляется при наличии права «Просмотр клиентов»;

− возвращается информация о клиенте, которому принадлежит авторизованный пользователь, и его дочерних клиентах;

− информация о клиенте типа «Партнер» и его клиентов возвращается при наличии права «Доступ к партнёрским клиентам».

Метод запроса: POST

URL запроса: https://hosting.glonasssoft.ru/api/v3/agents/find

Параметр запроса:

{
  "parentId": "string"
}

Ответ:

{
    "agentId": "",   
    "parentId": "",
    "name": "string",
    "fullName": "string",
    "agentInfoType": 0,
    "status": "",
}

ПараметрОписание
agentIdИдентификатор клиента  
parentIdИдентификатор клиента-родителя
nameНаименование клиента
fullNameПолное наименование клиента
agentInfoTypeТип клиента (0- Клиент, 1 - Партнер, 2 - Группа, 3 - Административная группа, 4 - Тестовый клиент, 5 - Договор)
statusСтатус клиента, 0 - заблокирован, 1 - Активен

Добавление клиента

POST /api/v3/agents 

Метод позволяет добавить клиента, указанного в запросе.

Метод запроса: POST

URL запроса: https://hosting.glonasssoft.ru/api/v3/agents

В заголовках запроса: X-Auth: Токен авторизации

Параметры в теле запроса (JSON):

{
  "parentId": "00000000-0000-0000-0000-000000000000", // идентификатор клиента-родителя 
  "name": "string", // имя
  "fullName": "string", // полное наименование
  "agentInfoType": 0, // тип клиента (0- Клиент, 1 - Партнер, 2 - Группа, 3 - Административная группа, 4 - Тестовый клиент, 5 - Договор)
  "isForeign": true, // иностранный контрагент
  "district": "string", // округ
  "region": "string", // регион
  "city": "string", // город
  "inn": "string", // ИНН
  "kpp": "string", // КПП
  "address": "string", // юридический адрес
  "addressFact": "string", // фактический адрес
  "email": "string", // email
  "director": "string", // ФИО руководителя
  "bankName": "string", // банк
  "bankBIK": "string", // БИК
  "bankRS": "string", // номер счёта
  "bankKS": "string" // корр. счёт
}

Ответ:

{
  "agentId": "00000000-0000-0000-0000-000000000000", // идентификатор клиента
  "parentId": "00000000-0000-0000-0000-000000000000", // идентификатор клиента-родителя 
  "name": "string", // имя
  "fullName": "string", // полное наименование
  "agentInfoType": 0, // тип клиента (0- Клиент, 1 - Партнер, 2 - Группа, 3 - Административная группа, 4 - Тестовый клиент, 5 - Договор)
  "isForeign": true, // иностранный контрагент
  "district": "string", // округ
  "region": "string", // регион
  "city": "string", // город
  "inn": "string", // ИНН
  "kpp": "string", // КПП
  "address": "string", // юридический адрес
  "addressFact": "string", // фактический адрес
  "email": "string", // email
  "director": "string", // ФИО руководителя
  "bankName": "string", // банк
  "bankBIK": "string", // БИК
  "bankRS": "string", // номер счёта
  "bankKS": "string" // корр. счёт
}

ПараметрОписание
agentIdИдентификатор клиента  
parentIdИдентификатор клиента-родителя
parentNameНаименование клиента-родителя
nameНаименование клиента
fullNameПолное наименование клиента
agentInfoTypeТип клиента (0- Клиент, 1 - Партнер, 2 - Группа, 3 - Административная группа, 4 - Тестовый клиент, 5 - Договор)
isForeignИностранный контрагент
districtОкруг
regionРегион
cityГород
innИНН клиента
kppКПП клиента
addressЮридический адрес
addressFactФактический адрес
emailЭлектронная почта
directorФИО руководителя
bankNameБанк
bankBIKБИК
bankRSНомер счета
bankKSКорр. счет

Редактирование клиента

PUT /api/v3/agents

Метод позволяет отредактировать клиента, указанного в запросе.

Метод запроса: PUT

URL запроса: https://hosting.glonasssoft.ru/api/v3/agents

В заголовках запроса: X-Auth: Токен авторизации

Параметры в теле запроса (JSON):

{
  "agentId": "00000000-0000-0000-0000-000000000000", // идентификатор клиента
  "parentId": "00000000-0000-0000-0000-000000000000", // идентификатор клиента-родителя 
  "name": "string", // имя
  "fullName": "string", // полное наименование
  "agentInfoType": 0, // тип клиента (0- Клиент, 1 - Партнер, 2 - Группа, 3 - Административная группа, 4 - Тестовый клиент, 5 - Договор)
  "isForeign": true, // иностранный контрагент
  "district": "string", // округ
  "region": "string", // регион
  "city": "string", // город
  "inn": "string", // ИНН
  "kpp": "string", // КПП
  "address": "string", // юридический адрес
  "addressFact": "string", // фактический адрес
  "email": "string", // email
  "director": "string", // ФИО руководителя
  "bankName": "string", // банк
  "bankBIK": "string", // БИК
  "bankRS": "string", // номер счёта
  "bankKS": "string" // корр. счёт
}

Ответ:

{
  "agentId": "00000000-0000-0000-0000-000000000000", // идентификатор клиента
  "parentId": "00000000-0000-0000-0000-000000000000", // идентификатор клиента-родителя 
  "name": "string", // имя
  "fullName": "string", // полное наименование
  "isForeign": true, // иностранный контрагент
  "district": "string", // округ
  "region": "string", // регион
  "city": "string", // город
  "inn": "string", // ИНН
  "kpp": "string", // КПП
  "address": "string", // юридический адрес
  "addressFact": "string", // фактический адрес
  "email": "string", // email
  "director": "string", // ФИО руководителя
  "bankName": "string", // банк
  "bankBIK": "string", // БИК
  "bankRS": "string", // номер счёта
  "bankKS": "string" // корр. счёт
}

Удаление клиента

DELETE /api/v3/agents/{clientId}

Метод позволяет удалить клиента, указанного в строке запроса.

Метод запроса: DELETE

URL запроса: https://hosting.glonasssoft.ru/api/v3/agents/{clientId}

Параметр запроса: {clientId} - Guid пользователя

В заголовках запроса: X-Auth: Токен авторизации

Ответ: В случае успешного выполнения запроса вернется HTTP ответ «200».

Смена статуса клиента (активация/блокировка)

PUT /api/v3/agents/{id}/changeStatus/{status}

Метод позволяет изменить статус клиента, указанного в запросе.

В пути указывается GUID клиента и статус клиента.

status - значение 0 - заблокирован, 1 - активен.

Ответ: Code 204

Раздел: Пользователи

Добавление пользователя

POST /api/v3/users

Метод позволяет добавить пользователя. Метод позволяет добавить пользователя, указанного в запросе.

Метод запроса: POST

URL запроса: https://hosting.glonasssoft.ru/api/v3/users

В заголовках запроса: X-Auth: Токен авторизации

Параметры в теле запроса (JSON):


    "lastName": "",  // фамилия   
    "firstName": "",  // имя   
    "position": "",  // должность   
    "phone": "",  // телефон   
    "organization": "",  // организация   
    "login": "",  // логин (обязателен)
    "password": "",  // пароль (обязателен)
    "email": "",  // email (обязателен)
    "description": "string", // Описание
    "isReadOnly": true, // Право только на чтение, true - включено, false - отключено
    "isDisabledMobile": true, // Запретить использовать мобильное приложение, true - включен, false - отключен
    "isEnabled": true, // Включен, true - включен, false - отключен
    "parentId": "",  // Guid родительского агента   
    "leaderId": "",  // Guid руководителя (null - не задан)
    "sessionDuration": 0, // продолжительность сессии, в минутах (null - по умолчанию, 30 минут)
    "doubleAuth":
    {
       "kind": 0, // Состояние двухэтапной аутентификации, email - включен, None - отключен
       "target": "string" // Адрес электронной почты двухэтапной аутентификации
    },
    "groups":
    [
       "string" // группы пользователя, перечисление названия системных ролей
    ],
    "customGroups":
    [
       "3fa85f64-5717-4562-b3fc-2c963f66afa6" // группы пользователя, перечисление названия клиентских ролей
    ],
    "language": 0 // Язык интерфейса пользователя 1 - Русский, 2 - Английский, 3 - Азербайджанский
}
{
  "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "lastName": "string",
  "firstName": "string",
  "position": "string",
  "phone": "string",
  "organization": "string",
  "login": "string",
  "password": "string",
  "email": "string",

Ответ:
{     
    "id": "" ,  // ID пользователя     
    "lastName": "" ,  // Фамилия ,     
    "firstName": "" ,  // Имя     
    "position": "" ,  // Должность     
    "phone": "" ,  // Телефон     
    "organization": "" ,  // Организация     
    "login": "" ,  // Логин     
    "password": "" ,  // Пароль     
    "email": "" ,  // Email     
    "description": "" ,  // Описание     
    "isEnabled": "" ,  // Признак включения     
    "parentId": "" ,  // Guid родительского агента     
    "sessionDuration": "" ,  // Продолжительность сессии, в минутах     
    "doubleAuth": "" ,  // параметры двухфакторной аутентификации         
    "kind": "" ,  // тип аутентификации         
    "target": "" ,  // в случае аутентификации по email - email-адрес     
    "groups": 
["", ""] ,  // роли пользователя, перечислены названия групп пользователя
}

Получение списка пользователей

POST /api/v3/users/find

Метод позволяет получить основные параметры пользователей: логин, имя, адрес электронной почты, номер телефона, статус, идентификатор клиента-родителя и прочее.

Метод возвращает информацию о пользователях клиента-родителя авторизованного пользователя и пользователях его дочерних клиентов. Информация о пользователях предоставляется при наличии права «Просмотр пользователей».

Метод запроса: POST

URL запроса: https://hosting.glonasssoft.ru/api/v3/users/find

Условия фильтрации объектов задаются в теле запроса.

Параметры в теле запроса (JSON):

{
  "parentId": "375a1f06-c384-43f8-8562-1c3d79a32303",  // GUID агента, для которого надо получить данные, null - для текущего агента
  "userId": "11111111-c384-43f8-8562-1c3d79a32303",  // ID пользователя, по которому фильтруется, null - неважно
  "login": "qqqqqq",  // Логин пользователя, по которому фильтруется, null - неважно
  "email": "eee",  // Email пользователя, по которому фильтруется, null - неважно
}

Ответ:

{            
    "id": "" ,  // идентификатор пользователя         
    "lastName": "" ,  // фамилия         
    "firstName": "" ,  // имя         
    "position": "" ,  // должность         
    "phone": "" ,  // телефон         
    "parentId": "" ,  // идентификатор клиента-родителя         
    "parentName": "" ,  // наименование клиента-родителя         
    "organization": "" ,  // организация         
    "login": "" ,  // логин        
    "email": "" ,  // E-mail
    "sessionDuration":"", // длительность сессии в минутах
    "status": "1",  // статус пользователя         
    "lastLogged": "", // дата/время последней авторизации
}

Получение информации о пользователе

GET /api/v3/users/{GUID}

Метод возвращает подробную информацию о пользователе клиента-родителя авторизованного пользователя или пользователя его дочерних клиентов. Информация о пользователе предоставляется при наличии права «Просмотр пользователей».

Метод запроса: GET

URL запроса: https://hosting.glonasssoft.ru/api/v3/users/{GUID}

В заголовках запроса: X-Auth: Токен авторизации

Ответ:

{
    "id": "", // GUID пользователя
    "lastName": "", // Фамилия 
    "firstName": "", // Имя
    "position": "", // Должность
    "phone": "", // Номер телефона
    "parentId": "", // GUID клиента, которому принадлежит пользователь
    "parentName": "", Наименование клиента, которому принадлежит пользователь
    "organization": "", // Организация
    "login": "", // Логин пользователя
    "email": "", // Адрес электронной почты
    "language": , // Язык интерфейса пользователя 1 - Русский, 2 - Английский, 3 - Азербайджанский
    "isReadOnly": , // Право только на чтение, true - включено, false - отключено
    "description": "", // Описание
    "isEnabled": , // Включен, true - включен, false - отключен
    "doubleAuth":
    {
        "kind": "None", // Состояние двухэтапной аутентификации, email - включен, None - отключен
        "target": "string" // Адрес электронной почты двухэтапной аутентификации
    },
    "isDisabledMobile": false, // Запретить использовать мобильное приложение, true - включен, false - отключен
    "sessionDuration": 30, // Длительность сессии в минутах
    "status": 0, // Статус пользователя, 0 - новый, 1 - подтвержден, 2 - активен, 3 - уточнить, 4 - блокирован
    "lastLogged": "2022-08-22T06:57:51.002129Z", // Дата и время последнего входа пользователя
    "groups": [], // Список ролей пользователя
    "customGroups": [], // Список клиентских ролей пользователя
    "authDevices": [ ], // Список авторизованных устройств
    "mobileDoubleAuthDevices": [], // Список авторизованных мобильных устройств
    "pushNotificationsDevices": [] // Список мобильных устройств которые были подписаны на мобильные уведомления
}

Редактирование пользователя

PUT /api/v3/users

Метод позволяет отредактировать пользователя. Метод позволяет отредактировать пользователя, указанного в запросе.

Метод запроса: PUT

URL запроса: https://hosting.glonasssoft.ru/api/v3/users

В заголовках запроса: X-Auth: Токен авторизации

Параметры в теле запроса (JSON):

{   
    "id": "" ,  // ID пользователя 
    "lastName": "" ,  // фамилия   
    "firstName": "" ,  // имя   
    "position": "" ,  // должность   
    "phone": "" ,  // телефон   
    "organization": "" ,  // организация   
    "login": "" ,  // логин   
(Если null - менять не надо)
    "password": "" ,  // пароль (Если null - менять не надо)
    "language": , // Язык интерфейса пользователя 1 - Русский, 2 - Английский, 3 - Азербайджанский
    "isReadOnly": , // Право только на чтение, true - включено, false - отключено   
    "email": "" ,  // email   
(Если null - менять не надо)
    "description": "" ,  // описание   
    "isEnabled": "" ,  // признак включения   
    "parentId": "" ,  // Guid родительского агента   
    "leaderId": "" ,  // Guid руководителя (null - не задан)   
    "sessionDuration": "" ,  // продолжительность сессии, в минутах (null - по умолчанию, 30 минут)   
    "doubleAuth":
    {
        "kind": "None", // Состояние двухэтапной аутентификации, email - включен, None - отключен
        "target": "string" // Адрес электронной почты двухэтапной аутентификации
    },
    "isDisabledMobile": false, // Запретить использовать мобильное приложение, true - включен, false - отключен
    "groups": "" ,  // группы пользователя, «user» названия группы пользователя

}

Ответ:

{     
    "id": "" ,  // идентификатор пользователя         
    "lastName": "" ,  // фамилия         
    "firstName": "" ,  // имя         
    "position": "" ,  // должность         
    "phone": "" ,  // телефон     
    "organization": "" ,  // организация     
    "login": "" ,  // логин     
    "password": "" ,  // пароль 
    "email": "" ,  // email     
    "description": "" ,  // описание      
    "isEnabled": "" ,  // признак включения       
    "parentId": "" ,  // Guid родительского агента     
    "sessionDuration": "" ,  // продолжительность сессии, в минутах 
    "doubleAuth":
    {
        "kind": "None", // Состояние двухэтапной аутентификации, email - включен, None - отключен
        "target": "string" // Адрес электронной почты двухэтапной аутентификации
    },
    "isDisabledMobile": false, // Запретить использовать мобильное приложение, true - включен, false - отключен
    "target": "" ,  // в случае аутентификации по email - email-адрес     
    "groups": "" ,  // группы пользователя, «user» названия группы пользователя
}

Изменение статуса пользователя

 PUT /api/v3/users/status/{id}

Метод позволяет изменить статус пользователя, указанного в запросе.

Метод запроса: PUT

URL запроса: https://hosting.glonasssoft.ru/api/v3/users/status/{id}

Параметр запроса: {id} - Guid пользователя

В заголовках запроса: X-Auth: Токен авторизации

Параметры в теле запроса (JSON):

{
    "status": "" ,  // статус пользователя (0 - новый, 1 - подтверждён, 2 - активен, 3 - уточнить, 4 - блокирован)
    "description": "" ,  // описание
    "data": "" ,  // данные, связанные со сменой статуса
}

Ответ: В случае успешного выполнения запроса вернется HTTP ответ «200»

Блокировка пользователей

POST /api/v3/users/disable

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

Метод запроса: POST

URL запроса: https://hosting.glonasssoft.ru/api/v3/users/disable

В теле запроса перечисляете массив id пользователей (JSON):

 [ 
   "8ed730d3-c61c-4c3a-ae4f-f41d9e710abc",
    "415f9ea3-8bc0-4e87-8d78-0852b0c0a4f1"
  ]

Ответ: В случае успешного выполнения запроса вернется HTTP ответ «200»

Разблокировка пользователей

POST /api/v3/users/enable

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

Метод запроса: POST

URL запроса: https://hosting.glonasssoft.ru/api/v3/users/enable

В теле запроса перечисляете массив id пользователей (JSON):

 [ 
    "8ed730d3-c61c-4c3a-ae4f-f41d9e710abc",
    "415f9ea3-8bc0-4e87-8d78-0852b0c0a4f1"
  ]

Ответ: В случае успешного выполнения запроса вернется HTTP ответ «200»

Для двух, описанных выше, методов если не получилось выполнить включение или отключение некоторых пользователей из переданного списка возвращается ответ - 206 Partial Content

В теле ответа:
{
    "errorMessages": [
        "Agent 0f8c2a8b-4b71-48d0-b780-341053089874 cannot access to object Agents d493fd88-60c8-465d-afad-912f5ac9d719."
    ],
    "users": [
        "415f9ea3-8bc0-4e87-8d78-0852b0c0a4f1"
    ]
}


"errorMessages" - массив ошибок, из-за которых не выполнилось действие с пользователями.
"users" - массив id пользователей, которых не удалось включить или отключить.

Удаление пользователя

DELETE /api/v3/users/{id}

Метод позволяет удалить пользователя. Метод позволяет удалить пользователя, указанного в строке запроса.

Метод запроса: DELETE

URL запроса: https://hosting.glonasssoft.ru/api/v3/users/{id}

Параметр запроса: {id} - Guid пользователя

В заголовках запроса: X-Auth: Токен авторизации

Ответ: В случае успешного выполнения запроса вернется HTTP ответ «200».

Раздел: Модель объекта

Получение информации о модели объекта

GET /api/v3/models/{Id}

Метод возвращает полную информацию о модели объекта.

Метод запроса: GET

URL запроса: https://hosting.glonasssoft.ru/api/v3/models/{ID}

Параметр запроса: {id} - идентификатор модели объекта

В заголовках запроса: X-Auth: Токен авторизации

Ответ:

{
  "parentName": "string",
  "name": "string",
  "picture": "string",
  "minspeed": 0,
  "maxspeed": 0,
  "width": 0,
  "imbeddedtrailer": true,
  "hoppercapacity": 0,
  "hopperdischargespeed": 0,
  "modelType": 0,
  "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "parentId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "deleted": true
}

ПараметрОписание
parentNameИмя клиента, которому принадлежит модель объекта
nameИмя модели объекта
pictureНазвание иконки транспорта
minspeedМинимальная технологическая скорость обработки поля, в км/ч
maxspeedМаксимальная технологическая скорость обработки поля, в км/ч
widthШирина агрегата, в метрах
imbeddedtrailerОпция: Содержит встроенный агрегат
hoppercapacityОбъем бункера
hopperdischargespeedСкорость2 выгрузки из бункера, л/сек
modelTypeОпределяет тип модели объекта: 0 - None, 1 - Agro, 2 - Cargo, 3 - Car
idID модели объекта
parentIdID клиента, которому принадлежит модель объекта
deletedПризнак удаления, тип: boolean

Просмотр списка моделей

POST /api/v3/models/find

Метод позволяет получить список всех моделей клиента, указанного в запросе.

Метод запроса: POST

URL запроса: https://hosting.glonasssoft.ru/api/v3/models/find

В заголовках запроса: X-Auth: Токен авторизации

Параметры в теле запроса (JSON):{

  "parentId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
}

Ответ:

[
  {
    "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "parentId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "parentName": "string",
    "name": "string",
    "modelType": 0
  }
]

ПараметрОписание
parentNameИмя клиента, которому принадлежит модель объекта
nameИмя модели объекта
modelTypeОпределяет тип модели объекта: 0 - None, 1 - Agro, 2 - Cargo, 3 - Car
idID модели объекта
parentIdID клиента, которому принадлежит модель объекта

Добавление модели

POST /api/v3/models

Метод позволяет добавить объект, указанный в запросе.

Метод запроса: POST

URL запроса: https://hosting.glonasssoft.ru/api/v3/models

В заголовках запроса: X-Auth: Токен авторизации

Параметры в теле запроса (JSON):

{
  "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "parentId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "deleted": true,
  "extId": "string",
  "name": "string",
  "picture": "string",
  "minspeed": 0,
  "maxspeed": 0,
  "width": 0,
  "imbeddedtrailer": true,
  "fueloutlay": 0,
  "hoppercapacity": 0,
  "hopperdischargespeed": 0,
  "modelType": 0
}

Ответ:

{
  "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "parentId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "deleted": true,
  "extId": "string",
  "name": "string",
  "picture": "string",
  "minspeed": 0,
  "maxspeed": 0,
  "width": 0,
  "imbeddedtrailer": true,
  "hoppercapacity": 0,
  "hopperdischargespeed": 0,
  "modelType": 0
}

ПараметрОписание
idID модели объекта
parentIdID клиента, которому принадлежит модель объекта
parentNameИмя клиента, которому принадлежит модель объекта
nameИмя модели объекта
pictureНазвание иконки транспорта
minspeedМинимальная технологическая скорость обработки поля, в км/ч
maxspeedМаксимальная технологическая скорость обработки поля, в км/ч
widthШирина агрегата, в метрах
imbeddedtrailerОпция: Содержит встроенный агрегат
hoppercapacityОбъем бункера
hopperdischargespeedСкорость выгрузки из бункера, л/сек
modelTypeОпределяет тип модели объекта: 0 - None, 1 - Agro, 2 - Cargo, 3 - Car

Редактирование модели

 PUT /api/v3/models

Метод позволяет изменить статус пользователя, указанного в запросе.

Метод запроса: PUT

URL запроса: https://hosting.glonasssoft.ru/api/v3/models

В заголовках запроса: X-Auth: Токен авторизации

Параметры в теле запроса (JSON):

{
  "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "parentId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "deleted": true,
  "extId": "string",
  "name": "string",
  "picture": "string",
  "minspeed": 0,
  "maxspeed": 0,
  "width": 0,
  "imbeddedtrailer": true,
  "fueloutlay": 0,
  "hoppercapacity": 0,
  "hopperdischargespeed": 0,
  "modelType": 0
}

Ответ:

{
  "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "parentId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "deleted": true,
  "extId": "string",
  "name": "string",
  "picture": "string",
  "minspeed": 0,
  "maxspeed": 0,
  "width": 0,
  "imbeddedtrailer": true,
  "fueloutlay": 0,
  "hoppercapacity": 0,
  "hopperdischargespeed": 0,
  "modelType": 0
}

ПараметрОписание
idID модели объекта
parentIdID клиента, которому принадлежит модель объекта
parentNameИмя клиента, которому принадлежит модель объекта
nameИмя модели объекта
pictureНазвание иконки транспорта
minspeedМинимальная технологическая скорость обработки поля, в км/ч
maxspeedМаксимальная технологическая скорость обработки поля, в км/ч
widthШирина агрегата, в метрах
imbeddedtrailerОпция: Содержит встроенный агрегат
hoppercapacityОбъем бункера
hopperdischargespeedСкорость выгрузки из бункера, л/сек
modelTypeОпределяет тип модели объекта: 0 - None, 1 - Agro, 2 - Cargo, 3 - Car

Удаление модели

DELETE /api/v3/models/{Id}

Метод позволяет удалить пользователя. Метод позволяет удалить пользователя, указанного в строке запроса.

Метод запроса: DELETE

URL запроса: https://hosting.glonasssoft.ru/api/v3/models/{Id}

Параметр запроса: {id} - id модели

В заголовках запроса: X-Auth: Токен авторизации

Ответ: В случае успеха Success 200

Раздел: Транспортные средства (объекты)

Получение информации об объекте

GET /api/v3/vehicles/{vehicleId}

Метод позволяет получить всю информацию из карточки объекта: ID, имя объекта, imei, тип устройства, SIM1, SIM2, ID клиента, название клиента, ID модели, наименование модели объекта, ID подразделения, водители, ТО, текущий пробег, моточасы, нормы расхода, полную историю статусов со всеми комментариями, список датчиков (тип, наименование, тип входа, номер входа, псевдоним, тип датчика, тип тарировки, тарировка, состояние чекбоксов «отображается в подсказке» и «отображать последнее валидное значение».

Метод возвращает информацию об объекте с учетом настроек авторизованного пользователя, указанного в запросе:

− возвращается информация об объекте клиента-родителя авторизованного пользователя и объекте его дочерних клиентов;

− информация о ТО предоставляется с учётом прав на «Просмотр заданий на техобслуживание».

Метод запроса: GET

URL запроса: https://hosting.glonasssoft.ru/api/v3/vehicles/{vehicleID}

Параметр запроса: {vehicleid} - идентификатор объекта (integer($int32))

В заголовках запроса: X-Auth: Токен авторизации

Ответ:

{
    "vehicleId": "", // ID объекта
    "name": "", // Имя объекта
    "imei": "", // IMEI объекта
    "deviceTypeId": , // ID типа устройства
    "deviceTypeName": "", // Название типа устройства
    "sim1": "", // Номер SIM1
    "sim2": "", // Номер SIM2
    "parentId": "", // ID клиента-родителя
    "parentName": "", // Наименование клиента-родителя
    "modelId": "", // ID модели объекта
    "modelName": "", // Имя модели объекта
    "unitId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", // ID подразделения
    "unitName": "string", // Наименование подразделения
    "status": 0, // Статус объекта
    "createdAt": "", // Дата создания объекта
    },
"customFields": [ // Произвольные поля
    {
      "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", // ID поля
      "name": "string", // Имя поля
      "value": "string", // Значение поля
      "forClient": true, // Не используемая функция
      "forTooltip": true, // Отображать в подсказке
      "forReport": true // Отображать в отчете
    }

], // Данные с вкладки нормы
    "consumptionPer100Km": "" ,  // Расход топлива на 100 км (если заполнено, то consumptionPerHour не может быть заполнено)
    "consumptionPerHour": "" ,  // Расход топлива за моточас (если заполнено, то consumptionPer100Km не может быть заполнено)
    "consumptionIdle": "" ,  // Расход топлива на холостом ходу
    "consumptionPer100KmSeasonal": 0, // Сезонный расход топлива на 100 км 
    "consumptionPerHourSeasonal": 0, // Сезонный расход топлива на моточас
     "consumptionIdleSeasonal": 0, // Сезонный расход топлива на холостом ходу 
     "consumptionPer100KmSeasonalBegin": "" ,  // День/месяц начала работы сезонной нормы расхода на 100 км
     "consumptionPer100KmSeasonalEnd": "" ,  // День/месяц окончания работы сезонной нормы расхода на 100 км
     "consumptionPerHourSeasonalBegin": "" ,  // День/месяц начала работы сезонной нормы расхода на моточас
     "consumptionPerHourSeasonalEnd": "" ,  // День/месяц окончания работы сезонной нормы расхода на  моточас
     "consumptionIdleSeasonalBegin": "" ,  // День/месяц начала работы сезонной нормы расхода на х/х
     "consumptionIdleSeasonalEnd": "" ,  // День/месяц окончания работы сезонной нормы расхода на х/х  
  "mileageCalcMethod": 0, // Метод расчета пробега, 0 - gps, 1 - датчик зажигания
  "mileageCoeff": 0, // коэффициент пробега
  "locationByCellId": true, // определение местоположения по данным LBS, true - активна, false - не активна
  "dottedLineTrackWhenNoCoords": true, // Обозначать пунктиром трек при отсутствии координат, true - активна, false - не активна
  "counters": { // Счетчики
    "mileageEnabled": true, // Считать текущий пробег, true - активна, false - не активна
    "motohoursEnabled": true, // Считать текущие моточасы, true - активна, false - не активна
    "mileage": 0, // Текущий пробег
    "motohours": 0, // Текущие моточасы
    "mileageTime": "2023-05-22T09:57:39.562Z", // Дата пересчета последнего пробега
    "motohoursTime": "2023-05-22T09:57:39.562Z" // Дата пересчета последних моточасов
  },

"cmsv6Parameters": { // Настройки видеомониторинга
    "id": "string", // ID объекта
    "enabled": true, // Включить, true - активна, false - не активна
    "host": "string", // CMSV6 Web Host
    "login": "string", // CMSV6 Account
    "password": "string" // CMSV6 Password
  },

"commandTemplates": [ // Шаблоны команд
    {
      "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", // ID команды
      "name": "string", // Наименование команды
      "command": "string", // Текст команды
      "retries": 0 // Количество попыток
    }
  ],
   "sensors": [ // Датчики
    {
      "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", // ID датчика
      "kind": 0, // Тип, Simple - простой, Composite - виртуальный
      "type": 0, // Тип датчика
      "name": "string", // Имя датчика
      "inputType": 0, // Тип входа, Analog, Digital, Impulse, ImpulseFrequency, Diagnosis, Rs485, Rs232, Wire, FMS, BLE
      "inputNumber": 0, // Номер входа
      "pseudonym": "string", // Псевдоним
      "medianDegree": 0, // Медианная фильтрация
      "isInverted": true, // Инвертировать, true - Вкл., false - Выкл.
      "disabled": true, // Состояние: Отключен, true - Вкл., false - Выкл.
      "gradeType": 0, // Тип тарировки, 0 - Default, 1 - Digital, 2 - GradeTable, 3 - CounterSummary, 4 - CounterDiffs
      "gradesTables": [ // Массив таблиц тарировки
        {
          "grades": [ // Таблица тарировки 1
            {
              "input": 0, // Входящее значение
              "output": 0 // Выходящее значение
            }
          ],
          "relevanceTime": "2023-05-22T09:57:39.562Z" // Дата/время начала применения тарировочной таблицы
        }
      ],
      "showInTooltip": true, // Отображать в подсказке
      "showLastValid": true, // Отображать последнее валидное значение
      "showAsDutOnGraph": true, // Отображать на графике как датчик уровня топлива
      "showWithoutIgn": true, // Отображать трек без включенного зажигания
      "agrFunction": 0, // Функция, SUM, AVG, EXPRESSION
      "expr": "string", // Формула
      "children": [ // массив дочерних датчиков
        "string"
      ],
      "customParams": { // прочие произвольные параметры
        "additionalProp1": "string",
        "additionalProp2": "string",
        "additionalProp3": "string"
      },

// Характерные для произвольного:
//                "EventsEnabled": "off", // Фиксировать события работы: on, off
//                "EventsTemplateName": "Работа Произвольный", // Наименование события работы
//                "EventsCountEnabled": "off", // Фиксировать количество срабатываний: on, off
//                "EventsCountTemplateName": "Количество срабатываний Произвольный", //Наименование //события количества срабатываний
//               "MapDisplayEnabled": "off", // Отображать на карте: on, off
//                "ChartDisplayEnabled": "off", // Отображать на графике объекта: on, off
//               "PayloadChartDisplayEnabled": "off", // Отображать на графике полезной нагрузки: on, off
//                "DrawType": // тип отрисовки line, bar (Линия, Область)
// Характерные для таблицы тарировки Вкл./Выкл.:
// "ValueOn": "Вкл.",
// "ValueOff": "Выкл."
      "summaryMaxValue": 0 // Макс. значение
    }
    "drivers": [ // Водители
          {
         "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
         "name": "string", // Наименование
         "description": "string",
         "isDefault": true // По умолчанию
          }
    ],
    "inspectionTasks": [ // Задания на тех. обслуживание
        {
            "id": "", // ID  задания
            "enabled": "", // Флаг активности задания (true - включен, false - отключен)
            "name": "", // Наименование задания
            "description": "", // Описание задания
            "mileageCondition": "", // Условие по пробегу (в метрах, null - условие не работает)
            "lastMileage": "", // Пробег (в метрах) на момент последнего ТО (null - неважно)
            "motohoursCondition": "", // Условие по моточасам (в секундах, null - условие не работает)
            "lastMotohours": "", // Моточасы (в секундах) на момент последнего ТО (null - неважно)
            "periodicCondition": "", // Условие периодичности по времени (null - условие не работает)
            "kind": "", // Вид периодичности по времени (дни - Days, месяцы - Months, года - Years, null - условие не работает)
            "lastInspectionDate": "" // Дата последнего ТО (null - не указано)
            "maxQuantity": ""   // Сколько раз выполнить задание (null - однократно)
        }
    ],
"statusHistory": [ // История статусов
    {
      "status": 0,
      "date": "2023-05-22T09:57:39.562Z",
      "description": "string",
      "additionalInfo": "string"
    }
  ]
}

Параметр «status» содержит id статуса объекта в системе, соответствие id и текстовое названия статуса приведены ниже:

0 - «Блокировка» 1 - «Активен», 2 - «Отменен», 3 - «Оборудован», 4 - «Диагностика», 5 - «Сервис», 6 - «Демонтаж», 7 - «Монтаж», 8 - «Дозаказ», 9 - «Обслужен», 10 - «Списан», 11 - «Неисправен», 12 - «Проверен», 13 - «Не эксплуатируется».

Отправить команду на терминал

POST /api/v3/Vehicles/cmd/create

Команда для отправки на тс.

{  
"id": "",  //идентификатор объекта (он же идентификатор ТС: vehicleId)
"command": "", //  Текст отправляемой команды
"retries": "",  // Количество попыток отправки на терминал
"idTemplate": "" // ID шаблона команды (при использовании ранее созданных шаблонов). 
}

В ответ получаем cmdid

Получить ответ на отправленную на ТС команду

GET /api/v3/Vehicles/cmd/{cmdId}/answer

Идентификатор команды: cmdId

Запрос от терминала на ответ команды

Пример ответ от терминала:

ID= "" // идентификатор объекта
Soft="" // версия софта
GPS=4 // тип трекера
Time=11:05:43 28.06.24 // время запроса
Lat=45.056221 // широта
Lon=39.035938 // долгота
Speed=0.0 // скорость
Course=181.4 //направление

Список отправленных объекту команд с ответами

GET/api/v3/Vehicles/cmd/{vehicleId}/history

Идентификатор ТС: vehicleId 

В ответе приходит список команд с их ID, временем отправки, количестве попыток отправки и ответами терминала.

Пример ответа терминала

[   
{    
"id": "",  // идентификатор пользователя
"commandText": "",   //Текст команды.
"templateId": "",    //Идентификатор шаблона
"updated": "",  // Время отправки  
"tryCount": 0,  // Количество попыток отправки команды
"answer": "",    // Ответ терминала.
"status": "" // Статус отправки
}
]

Добавление объекта

POST /api/v3/vehicles

Метод позволяет добавить объект, указанный в запросе.

Метод запроса: POST

URL запроса: https://hosting.glonasssoft.ru/api/v3/vehicles

В заголовках запроса: X-Auth: Токен авторизации

Параметры в теле запроса (JSON): Обязательные параметры наименование и модель объекта В теле запроса - объект JSON

{
    "parentId": "" ,  // ID клиента
    "name": "" ,  // имя ТС
    "imei": "" ,  // IMEI
    "deviceTypeId": "" ,  // ID типа устройства
    "modelId": "" , // ID модели
    "unitId": "" ,  // ID подразделения
    "sim1": "" ,  // Номер SIM 1
    "sim2": "" ,  // Номер SIM2
    "consumptionPer100Km": "" ,  // Расход топлива на 100 км (если заполнено, то consumptionPerHour не может быть заполнено)
    "consumptionPerHour": "" ,  // Расход топлива за моточас (если заполнено, то consumptionPer100Km не может быть заполнено)
    "consumptionIdle": "" ,  // Расход топлива на холостом ходу
    "consumptionPer100KmSeasonal": 0, // Сезонный расход топлива на 100 км 
    "consumptionPerHourSeasonal": 0, // Сезонный расход топлива на моточас
     "consumptionIdleSeasonal": 0, // Сезонный расход топлива на холостом ходу 
     "consumptionPer100KmSeasonalBegin": "" ,  // День/месяц начала работы сезонной нормы расхода на 100 км
     "consumptionPer100KmSeasonalEnd": "" ,  // День/месяц окончания работы сезонной нормы расхода на 100 км
     "consumptionPerHourSeasonalBegin": "" ,  // День/месяц начала работы сезонной нормы расхода на моточас
     "consumptionPerHourSeasonalEnd": "" ,  // День/месяц окончания работы сезонной нормы расхода на моточас
     "consumptionIdleSeasonalBegin": "" ,  // День/месяц начала работы сезонной нормы расхода на х/х
     "consumptionIdleSeasonalEnd": "" ,  // День/месяц окончания работы сезонной нормы расхода на х/х
     "mileageCalcMethod": 0,
     "mileageCoeff": 0,
     "locationByCellId": true,
     "dottedLineTrackWhenNoCoords": true,
     "counters":  // счетчики
      {
     "mileage": "" ,  // пробег
     "mileageEnabled": true,  // флаг активности счётчика "пробег"
     "motohours": "" ,  // моточасы
     "motohoursEnabled": true  // флаг активности счётчика "моточасы"
      },
    "cmsv6Parameters": { // параметры CMSv6
      "enabled": true,  // флаг включения
      "id": "" ,  // идентификатор
      "host": "" ,  // IP-адрес или доменное имя из URL веб-сайта CMSV6
      "login": "" ,  // имя учетной записи
      "password": ""   // пароль учетной записи
      },
    "inspectionTasks":  // задания на ТО
      {
      "enabled": "" ,  // Признак включения
      "name": "" ,  // Имя задания
      "description": "" ,  // Описание задания
      "mileageCondition": "" ,  // Условие по пробегу (в метрах, null - условие не работает)
      "lastMileage": "" ,  // Пробег (в метрах) на момент последнего ТО (null - неважно)
      "motohoursCondition": "" ,  // Условие по моточасам (в секундах, null - условие не работает)
      "lastMotohours": "" ,  // Моточасы (в секундах) на момент последнего ТО (null - неважно)
      "periodicCondition": "" ,  //  Условие периодичности по времени (null - условие не работает)
      "kind": "" ,  // Вид периодичности по времени (дни - Days, месяцы - Months, года - Years, null - условие не работает)
      "lastInspectionDate": "" ,  // Дата последнего ТО (null - не указано)
      "maxQuantity": ""   // Сколько раз выполнить задание (null - однократно)
      }
"drivers": [ // Водители
    {
      "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "isDefault": true
    }
  ],
  "commandTemplates": [ // Шаблон команды
    {
      "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "name": "string",
      "command": "string",
      "retries": 0
    }
  ],
"sensors": [ // Датчики
    {
      "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", // ID датчика
      "kind": 0, // Тип, Simple - простой, Composite - виртуальный
      "type": 0, // Тип датчика
      "name": "string", // Имя датчика
      "inputType": 0, // Тип входа, Analog, Digital, Impulse, ImpulseFrequency, Diagnosis, Rs485, Rs232, Wire, FMS, BLE
      "inputNumber": 0, // Номер входа
      "pseudonym": "string", // Псевдоним
      "medianDegree": 0, // Медианная фильтрация
      "isInverted": true, // Инвертировать, true - Вкл., false - Выкл.
      "disabled": true, // Состояние: Отключен, true - Вкл., false - Выкл.
      "gradeType": 0, // Тип тарировки, 0 - Default, 1 - Digital, 2 - GradeTable, 3 - CounterSummary, 4 - CounterDiffs
      "gradesTables": [ // Массив таблиц тарировки
        {
          "grades": [ // Таблица тарировки 1
            {
              "input": 0, // Входящее значение
              "output": 0 // Выходящее значение
            }
          ],
          "relevanceTime": "2023-05-22T09:57:39.562Z" // Дата/время начала применения тарировочной таблицы
        }
      ],
      "showInTooltip": true, // Отображать в подсказке
      "showLastValid": true, // Отображать последнее валидное значение
      "showAsDutOnGraph": true, // Отображать на графике как датчик уровня топлива
      "showWithoutIgn": true, // Отображать трек без включенного зажигания
      "agrFunction": 0, // Функция, SUM, AVG, EXPRESSION
      "expr": "string", // Формула
      "children": [ // массив дочерних датчиков
        "string"
      ],
      "customParams": { // прочие произвольные параметры
        "additionalProp1": "string",
        "additionalProp2": "string",
        "additionalProp3": "string"
      },
// Характерные для произвольного:
//                "EventsEnabled": "off", // Фиксировать события работы: on, off
//                "EventsTemplateName": "Работа Произвольный", // Наименование события работы
//                "EventsCountEnabled": "off", // Фиксировать количество срабатываний: on, off
//                "EventsCountTemplateName": "Количество срабатываний Произвольный", //Наименование //события количества срабатываний
//               "MapDisplayEnabled": "off", // Отображать на карте: on, off
//                "ChartDisplayEnabled": "off", // Отображать на графике объекта: on, off
//               "PayloadChartDisplayEnabled": "off", // Отображать на графике полезной нагрузки: on, off
//                "DrawType": // тип отрисовки line, bar (Линия, Область)
// Характерные для таблицы тарировки Вкл./Выкл.:
// "ValueOn": "Вкл.",
// "ValueOff": "Выкл."
      "summaryMaxValue": 0 // Определяет максимальное значение датчика в режиме накопления.

      "valueIntervals": [ // Интервалы значений для подсветки в мониторинге
        {
          "from": 0, // С какого значения
          "color": "string", // Каким цветом
          "text": "string" // Текст подписи к этому интервалу
        }
      ]
    }
  ],

  "highlightSensorGuid": "3fa85f64-5717-4562-b3fc-2c963f66afa6", // Guid датчика, выбранного для подсветки его значения в различных интервалах

  "customFields": [ // Произвольные поля
    {
      "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",  // System.Guid идентификатор элемента сущности
      "name": "string", // Наименование произвольного поля
      "value": "string", // Значение произвольного поля
      "forClient": true, // Отобразить произвольное поле у клиента
      "forTooltip": true, // Отобразить произвольное поле в подсказке (при наведении на ТС на карте)
      "forReport": true // Отобразить произвольное поле в отчете
    }
  ]
}

Ответ:

{
  "vehicleId": 0,  // ID ТС
  "parentId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", // Guid владельца ТС
  "name": "string", // Имя объекта
  "imei": "string", // IMEI
  "deviceTypeId": 0, // ID типа устройства
  "modelId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",  // ID модели
  "unitId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", // ID подразделения
  "sim1": "string", // SIM1
  "sim2": "string", // SIM2
  "consumptionPer100Km": 0, // Расход топлива на 100 км
  "consumptionPerHour": 0, // Расход топлива на моточас
  "consumptionIdle": 0,  // Расход топлива на холостом ходу
  "consumptionPer100KmSeasonal": 0, // Сезонный расход топлива на 100 км
  "consumptionPerHourSeasonal": 0, // Сезонный расход топлива на моточас
  "consumptionIdleSeasonal": 0, // Сезонный расход топлива на холостом ходу
  "consumptionPer100KmSeasonalBegin": "2024-10-30T08:11:35.622Z", // День/месяц начала работы сезонной нормы расхода на 100 км
  "consumptionPer100KmSeasonalEnd": "2024-10-30T08:11:35.622Z", // День/месяц окончания работы сезонной нормы расхода на 100 км
  "consumptionPerHourSeasonalBegin": "2024-10-30T08:11:35.622Z", // День/месяц начала работы сезонной нормы расхода на моточас
  "consumptionPerHourSeasonalEnd": "2024-10-30T08:11:35.622Z", // День/месяц окончания работы сезонной нормы расхода на моточас
  "consumptionIdleSeasonalBegin": "2024-10-30T08:11:35.622Z", // День/месяц начала работы сезонной нормы расхода на х/х
  "consumptionIdleSeasonalEnd": "2024-10-30T08:11:35.622Z", // День/месяц окончания работы сезонной нормы расхода на х/х
  "mileageCalcMethod": 0, // Вид расчёта пробега (0 - ByGps, 1 - ByMileageSensor)
  "mileageCoeff": 0, // Коэффициент пробега при расчёте пробега по GPS (по умолчанию - 1)
  "locationByCellId": true, // Вычислять ли положение по базовым станциям, если координаты по GPS невалидны?
  "dottedLineTrackWhenNoCoords": true, // Обозначать пунктиром трек при отсутствии координат.
  "showLineTrackWhenNoCoords": true, // Обозначать трек при отсутствии координат.
  "counters": {  // Dto для состояний счётчиков
    "mileageEnabled": true, // Флаг включения счётчика "Пробег"
    "motohoursEnabled": true, // Флаг включения счётчика "Моточасы"
    "mileage": 0, // Пробег
    "motohours": 0 // Моточасы
  },
  "cmsv6Parameters": { // Dto для CMSv6
    "id": "string", // CMSV6 Идентификатор
    "enabled": true, // Признак включения
    "host": "string", // IP-адрес или доменное имя из URL веб-сайта CMSV6. Порт также можно указать. В случае использования безопасного соединения необходимо указать протокол.
    "login": "string", // CMSV6 имя учетной записи
    "password": "string" // CMSV6 — пароль учетной записи
  },
  "inspectionTasks": [ // Dto для описания задачи на ТО
    {
      "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", // ID задачи
      "enabled": true, // Признак включения
      "name": "string", // Имя задания
      "description": "string", // Описание задания
      "mileageCondition": 0, // Условие по пробегу (в метрах)
      "lastMileage": 0, // Пробег (в метрах) на момент последнего ТО
      "motohoursCondition": 0, // Условие по моточасам (в секундах)
      "lastMotohours": 0, // Моточасы (в секундах) на момент последнего ТО
      "periodicCondition": 0, // Условие периодичности по времени
      "kind": 0, // Определяет вид периодичности ТО.( 0 - Дни, 1 - Месяцы , 2 - Годы)
      "lastInspectionDate": "2024-10-30T08:11:35.622Z",  //  Дата последнего ТО
      "maxQuantity": 0 // Условие по количеству записей для деактивации
    }
  ],
  "drivers": [ // Список водителей. Определяет класс назначения водителя на объект.
    {
      "vehicleId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", // Идентификатор объекта.
      "inputNumber": 0, // № входа.
      "createTime": "2024-10-30T08:11:35.622Z", // Момент времени создания назначения.
      "comment": "string", // Комментарий
      "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", // Идентификатор назначения.
      "driverId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", // Идентификатор водителя.
      "beginTime": "2024-10-30T08:11:35.622Z", // Момент времени начала назначения.
      "endTime": "2024-10-30T08:11:35.622Z" // Момент времени окончания назначения.
    }
  ],
  "commandTemplates": [  // Список шаблонов команд
    {
      "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", // ID шаблона
      "name": "string", // Название шаблона команд
      "command": "string", // Команда на выполнение
      "retries": 0 // Лимит попыток отправки
    }
  ],
  "sensors": [ // Список датчиков
    {
      "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", // ID датчика
      "kind": 0, // Определяет виды датчиков. 0 - Simple, 1 - Composite
      "type": 0, // Определяет типы датчиков. 0 - None, 1 - FuelLvl, 2 - PowerLevel, 3 - Consumption, 4 - Ignition, 5 - Crane, 6 - Greider, 8 - Power, 11 - Arrow, 14 - Otval, 15 - Sand, 17 - MixerLand, 18 - MixerMove, 20 - Temperature, 21 - Warning, 22 - Metla, 23 - Kosilka, 24 - DriverRFID, 25 - ReFueller, 27 - GrainLvl, 28 - EngineRPM, 29 - BodyUp, 31 - EngineTemperature, 32 - TrailerRFID, 33 - Tank, 34 - Unloading, 35 - Custom, 36 - GNSS, 37 - WeighingTerminal, 38 - RelativeMotohours, 39 - MileageSensor, 40 - Motohours, 41 - BunkerLowLevel, 42 - BunkerHighLevel, 43 - AppliedKg, 44 - TreatedHa, 45 - RateKgHa, 46 - FertilizerLevel, 47 - FactOfWork, 48 - ReapingAggregate, 49 - AverageRateKgHa, 50 - Speed
      "name": "string",  // Имя датчика
      "inputType": 0, // Тип входа, на который подключается определенный тип датчика. 0 - Digital, 1 - Analog, 2 - Impulse, 3 - Rs232, 4 - Rs485, 5 - FMS, 6 - Diagnosis, 7 - Wire, 8 - ImpulseFrequency, 9 - BLE, 255 - Virtual
      "inputNumber": 0, // Номер входа
      "pseudonym": "string", // Псевдоним
      "medianDegree": 0, // Степень медианной фильтрации
      "isInverted": true, //  Признак инверсии
      "disabled": true, // Датчик не участвует в обработке
      "gradeType": 0, // Способ тарировки показаний датчика.  0 - Default, 1 - Digital, 2 - GradeTable, 3 - CounterSummary, 4 - CounterDiffs
      "gradesTables": [ // Тарировка
        {
          "grades": [ // Таблицы тарировки
            {
              "input": 0, // Вход
              "output": 0 // Выход
            }
          ],
          "relevanceTime": "2024-10-30T08:11:35.622Z" // Время, с которого наступает актуальность таблицы тарировки
        }
      ],
      "showInTooltip": true, // Отображение в подсказке
      "showLastValid": true, // Отображать последнее валидное значение
      "showAsDutOnGraph": true, // Отображать на графике как датчик уровня топлива
      "showWithoutIgn": true, // Отображать без включенного зажигания
      "agrFunction": 0,  // Агрегирующая функция. 0 - SUM, 1 - AVG, 2 - EXPRESSION
      "expr": "string", // Выражение
      "children": [ // Cписок добавленных в агрегацию физ. датчиков
        "string"
      ],
      "customParams": {
        "additionalProp1": "string",
        "additionalProp2": "string",
        "additionalProp3": "string"
      },
      "summaryMaxValue": 0, // Определяет максимальное значение датчика в режиме накопления.
      "valueIntervals": [  // Интервалы значений для подсветки в мониторинге
        {
          "from": 0, // С какого значения
          "color": "string", // Каким цветом

          "text": "string" // Текст подписи к этому интервалу
         }
      ]
    }
  ],
  "highlightSensorGuid": "3fa85f64-5717-4562-b3fc-2c963f66afa6", // Guid датчика, выбранного для подсветки его значения в различных интервалах
  "customFields": [ // Список произвольных полей
    {
      "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", // System.Guid идентификатор элемента сущности
      "name": "string", // Наименование произвольного поля
      "value": "string", // Значение произвольного поля
      "forClient": true, // Отобразить произвольное поле у клиента
      "forTooltip": true, // Отобразить произвольное поле в подсказке (при наведении на ТС на карте)
      "forReport": true // Отобразить произвольное поле в отчете
    }
  ],
  "motohoursCalcMethod": 0 // Вид расчета моточасов. 0 - ByIgnitionSensor, 1 - ByMotohoursSensor, 2 - ByRelativeMotohoursSensor
}

Валидация:
- сезонный параметр может быть задан только если задана соответствующая обычная норма;
- сезонные начало и окончание могут быть заданы только если задана соответствующая сезонная норма;
- при задании сезонной нормы обязательны соответствующие даты начала/окончания.

Импортировать историю ТС (Асинхронный запрос)

POST /api/v3/Vehicles/importAsync/history/{vehicleId} 

Метод запроса: POST

URL запроса: https://hosting.glonasssoft.ru/api/v3/Vehicles/importAsync/history/{vehicleId} 

Параметр запроса: {vehicleid} - идентификатор транспортного средства

Ответ:

{

  "RequestId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", // Уникальный идентификатор запроса

  "Status": 0, // Перечисление состояний выполнения запроса

// ( 0 - Success, 1 - InPorgress, 2 - Canceled, 10 - Error, 20 - ErrorRequestValidation, 50 - ErrorExceedMaximumActiveRequest)

  "Message": "string", // Информация о выполнении запроса

  "ProgressState": 1, // Тип информирования о ходе выполнении запроса (1 - Intermediate, 2 - ProgressProcent, 255 - None)

  "ProgressValue": 0, // Прогресс выполнения запроса. Актуально, только если ProgressState=InProgress

  "Data": "string" // Данные

}

Возвращает статус асинхронного запроса импорта истории ТС

GET /api/v3/Vehicles/importAsync/history/state/{requestId}

Метод запроса: GET

URL запроса: https://hosting.glonasssoft.ru/api/v3/Vehicles/importAsync/history/state/{requestId}

Параметр запроса: {requestId} - Уникальный идентификатор запроса

Ответ:

{

  "RequestId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", // Уникальный идентификатор запроса

  "Status": 0, // Перечисление состояний выполения запроса
// 0 - Success, 1 - InPorgress, 2 - Canceled, 10 - Error, 20 - ErrorRequestValidation, 50 - ErrorExceedMaximumActiveRequest

  "Message": "string", // Информация о выполнении запроса

  "ProgressState": 1, // Тип информирования о ходе выполнении запроса

// 1 - Intermediate, 2 - ProgressProcent, 255 - None

  "ProgressValue": 0, // Прогресс выполнения запроса. Актуально, только если ProgressState=InProgress

  "Data": "string" // Данные

}

Получение списка объектов с основными параметрами

POST /api/v3/vehicles/find

Метод позволяет получить список доступных объектов мониторинга (транспортных средств) с их основными параметрами: наименование, IMEI, тип устройства, модель объекта, подразделение, номера телефонов и идентификатор клиента, к которому прикреплен объект (клиент-родитель).

Метод возвращает информацию об объектах с учетом настроек авторизованного пользователя, указанного в запросе:

− возвращается информация об объектах клиента-родителя авторизованного пользователя и объектах его дочерних клиентов;

− возвращает информацию об объектах с учетом заданных настроек видимости объектов;

− информация предоставляется с учетом наличия прав на просмотр объектов заблокированных договоров (объекты, принадлежащие заблокированному договору возвращаются при наличии любого из прав «Видимость объектов заблокированных договоров в панели управления» или «Видимость объектов заблокированных договоров в мониторинге»;

− информация о телефонах SIM1/SIM2 предоставляется при наличии права «Просмотр номеров телефонов объектов»;

− информация о статусе объекта предоставляется при наличии права «Просмотр статуса объекта».

Метод запроса: POST

URL запроса: https://hosting.glonasssoft.ru/api/v3/vehicles/find

В заголовках запроса:

− Content-Type: application/json

− X-Auth: Токен авторизации

Условия фильтрации объектов задаются в теле запроса.

Параметры в теле запроса (JSON):

{
    "vehicleId": null, // 84350, ID ТС (int, опционально)
    "name": null, // Имя ТС (string, опционально)
    "imei": null, // "710179307", // IMEI (string, опционально)
    "sim": null, // "938112", // Номер телефона (string, опционально)
    "deviceTypeId": null, // 5, ID типа устройства (short, опционально)
     "unitId": "3fa85f64-5717-4562-b3fc-2c963f66afa6" // ID подразделения (опционально)
      "unitName": "string",  // Название подразделения (опционально)
    "customFields": "string", // Поиск по содержимому произвольных полей ТС (опционально)
    "vehicleGroupId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", // ID группы ТС (опционально)
    "vehicleGroupName": "string", // Название группы ТС (опционально)
     "parentId": "3fa85f64-5717-4562-b3fc-2c963f66afa6" // Идентификатор агента, для которого надо получить данные
}

Фильтрация осуществляется по точному совпадению значений параметров «vehicleId», «deviceTypeId», «parentId», «unitId», и по частичному - «name», «imei», «sim». Фильтрация по значению параметра «sim» осуществляется при наличии у авторизованного пользователя права «Просмотр номеров телефонов объектов».

Ответ:

[
{

    "vehicleGuid": "3fa85f64-5717-4562-b3fc-2c963f66afa6", // Guid TC

    "vehicleId": "" // идентификатор объекта         
    "name": "" // наименование объекта         
    "imei": "" // IMEI объекта         
    "deviceTypeId": "" // идентификатор типа устройства         
    "deviceTypeName": "" // наименование типа устройства         
    "sim1": "" // первый номер телефона         
    "sim2": "" // второй номер телефона         
    "parentId": "" // идентификатор клиента-родителя         
    "parentName": "" // наименование клиента-родителя         
    "modelId": "" // идентификатор модели объекта         
    "modelName": "" // наименование модели объекта         
    "unitId": "" // идентификатор подразделения         
    "unitName": "" // наименование подразделения         
    "status": "" // статус объекта         
(-1 - Новый, 0 - Блокировка, 1 - Активен, 2 - Отменен, 3 - Оборудован, 4 - Диагностика, 
                                                           // 5 - Сервис, 6 - Демонтаж, 7 - Монтаж, 8 - Дозаказ, 9 - Обслужен, 10 - Списан, 
                                                          // 11 - Неисправен, 12 - Проверен, 13 - Не эксплуатируется)
    "createdAt": "" // дата создания объектов  
    "customFields": [ 
            {
                "id": "", // идентификатор произвольного поля
                "name": "", // имя произвольного поля
                "value": "", // значение произвольного поля
                "forClient": true, // право на отображение у клиента
                "forTooltip": false, // право на отображение в подсказке
                "forReport": false // право на отображение в отчетах

      }
    ],
    "vehicleGroups": [  // Группы ТС
      {
        "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", // System.Guid идентификатор элемента сущности
        "name": "string" // Наименование группы ТС
      }
    ]
  }
]

          Параметры «sim1» и «sim2» содержатся в ответе при наличии у авторизованного пользователя права «Просмотр номеров телефонов объектов». Параметр «status» содержится в ответе при наличии у авторизованного пользователя права «Просмотр статуса объекта».

Изменение статуса объекта

POST /api/v3/vehicles/changeStatus/{vehicleId}

Метод позволяет изменить статус объекта. Метод позволяет изменить статус объекта, указанного в запросе.

Метод запроса: POST

URL запроса: https://hosting.glonasssoft.ru/api/v3/vehicles/changeStatus/{vehicleId}

Параметр запроса: {vehicleId} - ID ТС

В заголовках запроса: X-Auth: Токен авторизации

Параметры в теле запроса (JSON):

{

  "status": "", // значение статуса (-1 - Новый, 0 - Блокировка, 1 - Активен, 2 - Отменен, 3 - Оборудован, 4 - Диагностика, 
                                   // 5 - Сервис, 6 - Демонтаж, 7 - Монтаж, 8 - Дозаказ, 9 - Обслужен, 10 - Списан, 
                                   // 11 - Неисправен, 12 - Проверен, 13 - Не эксплуатируется)
  "date": "", // Дата смены статуса (null если сменить немедленно)
  "description": "", // Описание
  "data": "", // Данные
  "overwrite": false, // Флаг перезаписи
  "stage": "", // Состояние, может быть null
}

Ответ:

{
  "status": "", // значение статуса
  "date": "", // Дата смены статуса 
  "description": "", // Описание
  "data": "", // Данные
  "overwrite": false, // Флаг перезаписи
  "stage": "", // Состояние
  }

Редактирование объекта

PUT /api/v3/vehicles

Метод позволяет отредактировать объект, указанный в запросе.

Метод запроса: PUT

URL запроса: https://hosting.glonasssoft.ru/api/v3/vehicles

В заголовках запроса: X-Auth: Токен авторизации

Параметры в теле запроса (JSON):

{
    "vehicleId": , // ID объекта
    "parentId": "" ,  // ID клиента
    "name": "" ,  // имя ТС
    "imei": "" ,  // IMEI
    "deviceTypeId": "" ,  // ID типа устройства
    "modelId": "" , // ID модели
    "unitId": "" ,  // ID подразделения
    "sim1": "" ,  // Номер SIM 1
    "sim2": "" ,  // Номер SIM2
    "consumptionPer100Km": "" ,  // Расход топлива на 100 км (если заполнено, то consumptionPerHour не может быть заполнено)
    "consumptionPerHour": "" ,  // Расход топлива за моточас (если заполнено, то consumptionPer100Km не может быть заполнено)
    "consumptionIdle": "" ,  // Расход топлива на холостом ходу
    "consumptionPer100KmSeasonal": 0, // Сезонный расход топлива на 100 км 
    "consumptionPerHourSeasonal": 0, // Сезонный расход топлива на моточас
     "consumptionIdleSeasonal": 0, // Сезонный расход топлива на холостом ходу 
     "consumptionPer100KmSeasonalBegin": "" ,  // День/месяц начала работы сезонной нормы расхода на 100 км
     "consumptionPer100KmSeasonalEnd": "" ,  // День/месяц окончания работы сезонной нормы расхода на 100 км
     "consumptionPerHourSeasonalBegin": "" ,  // День/месяц начала работы сезонной нормы расхода на моточас
     "consumptionPerHourSeasonalEnd": "" ,  // День/месяц окончания работы сезонной нормы расхода на моточас
     "consumptionIdleSeasonalBegin": "" ,  // День/месяц начала работы сезонной нормы расхода на х/х
     "consumptionIdleSeasonalEnd": "" ,  // День/месяц окончания работы сезонной нормы расхода на х/х

     "mileageCalcMethod": 0,
     "mileageCoeff": 0,
     "locationByCellId": true,
     "dottedLineTrackWhenNoCoords": true,
     "counters":  // счетчики
      {
     "mileage": "" ,  // пробег
     "mileageEnabled": true,  // флаг активности счётчика "пробег"
     "motohours": "" ,  // моточасы
     "motohoursEnabled": true  // флаг активности счётчика "моточасы"
      },
    "cmsv6Parameters": { // параметры CMSv6
      "enabled": true,  // флаг включения
      "id": "" ,  // идентификатор
      "host": "" ,  // IP-адрес или доменное имя из URL веб-сайта CMSV6
      "login": "" ,  // имя учетной записи
      "password": ""   // пароль учетной записи
      },
    "inspectionTasks":  // задания на ТО
      {
      "enabled": "" ,  // Признак включения
      "name": "" ,  // Имя задания
      "description": "" ,  // Описание задания
      "mileageCondition": "" ,  // Условие по пробегу (в метрах, null - условие не работает)
      "lastMileage": "" ,  // Пробег (в метрах) на момент последнего ТО (null - неважно)
      "motohoursCondition": "" ,  // Условие по моточасам (в секундах, null - условие не работает)
      "lastMotohours": "" ,  // Моточасы (в секундах) на момент последнего ТО (null - неважно)
      "periodicCondition": "" ,  //  Условие периодичности по времени (null - условие не работает)
      "kind": "" ,  // Вид периодичности по времени (дни - Days, месяцы - Months, года - Years, null - условие не работает)
      "lastInspectionDate": "" ,  // Дата последнего ТО (null - не указано)
      "maxQuantity": ""   // Сколько раз выполнить задание (null - однократно)
      }

"drivers": [ // Водители
    {
      "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "isDefault": true
    }
  ],
  "commandTemplates": [ // Шаблон команды
    {
      "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "name": "string",
      "command": "string",
      "retries": 0
    }
  ],
"sensors": [ // Датчики
    {
      "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", // ID датчика
      "kind": 0, // Тип, Simple - простой, Composite - виртуальный
      "type": 0, // Тип датчика
      "name": "string", // Имя датчика
      "inputType": 0, // Тип входа, Analog, Digital, Impulse, ImpulseFrequency, Diagnosis, Rs485, Rs232, Wire, FMS, BLE
      "inputNumber": 0, // Номер входа
      "pseudonym": "string", // Псевдоним
      "medianDegree": 0, // Медианная фильтрация
      "isInverted": true, // Инвертировать, true - Вкл., false - Выкл.
      "disabled": true, // Состояние: Отключен, true - Вкл., false - Выкл.
      "gradeType": 0, // Тип тарировки, 0 - Default, 1 - Digital, 2 - GradeTable, 3 - CounterSummary, 4 - CounterDiffs
      "gradesTables": [ // Массив таблиц тарировки
        {
          "grades": [ // Таблица тарировки 1
            {
              "input": 0, // Входящее значение
              "output": 0 // Выходящее значение
            }
          ],
          "relevanceTime": "2023-05-22T09:57:39.562Z" // Дата/время начала применения тарировочной таблицы
        }
      ],
      "showInTooltip": true, // Отображать в подсказке
      "showLastValid": true, // Отображать последнее валидное значение
      "showAsDutOnGraph": true, // Отображать на графике как датчик уровня топлива
      "showWithoutIgn": true, // Отображать трек без включенного зажигания
      "agrFunction": 0, // Функция, SUM, AVG, EXPRESSION
      "expr": "string", // Формула
      "children": [ // массив дочерних датчиков
        "string"
      ],
      "customParams": { // прочие произвольные параметры
        "additionalProp1": "string",
        "additionalProp2": "string",
        "additionalProp3": "string"
      },
// Характерные для произвольного:
//                "EventsEnabled": "off", // Фиксировать события работы: on, off
//                "EventsTemplateName": "Работа Произвольный", // Наименование события работы
//                "EventsCountEnabled": "off", // Фиксировать количество срабатываний: on, off
//                "EventsCountTemplateName": "Количество срабатываний Произвольный", //Наименование //события количества срабатываний
//               "MapDisplayEnabled": "off", // Отображать на карте: on, off
//                "ChartDisplayEnabled": "off", // Отображать на графике объекта: on, off
//               "PayloadChartDisplayEnabled": "off", // Отображать на графике полезной нагрузки: on, off
//                "DrawType": // тип отрисовки line, bar (Линия, Область)
// Характерные для таблицы тарировки Вкл./Выкл.:
// "ValueOn": "Вкл.",
// "ValueOff": "Выкл."
      "summaryMaxValue": 0 // Макс. значение

      "valueIntervals": [ // Интервалы значений для подсветки в мониторинге
        {
          "from": 0, // С какого значения
          "color": "string", // Каким цветом
          "text": "string" // Текст подписи к этому интервалу
        }
      ]
    }
  ],
 "highlightSensorGuid": "3fa85f64-5717-4562-b3fc-2c963f66afa6", // Guid датчика, выбранного для подсветки его значения в различных интервалах

  "customFields": [ // Произвольные поля
    {     
     "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",  // System.Guid идентификатор элемента сущности
      "name": "string", // Наименование произвольного поля
      "value": "string", // Значение произвольного поля
      "forClient": true, // Отобразить произвольное поле у клиента
      "forTooltip": true, // Отобразить произвольное поле в подсказке (при наведении на ТС на карте)
      "forReport": true // Отобразить произвольное поле в отчете
    }
  ]
}

Ответ:

{
  "vehicleId": 0, // ID ТС
  "parentId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", // Guid владельца ТС 
  "name": "string", // Имя объекта
  "imei": "string", // IMEI
  "deviceTypeId": 0, // ID типа устройства
  "modelId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", // ID модели
  "unitId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", // ID подразделения
  "sim1": "string", // SIM1
  "sim2": "string", // SIM2
  "consumptionPer100Km": 0, // Расход топлива на 100 км
  "consumptionPerHour": 0, // Расход топлива на моточас
  "consumptionIdle": 0, // Расход топлива на холостом ходу
  "consumptionPer100KmSeasonal": 0, // Сезонный расход топлива на 100 км
  "consumptionPerHourSeasonal": 0, // Сезонный расход топлива на моточас
  "consumptionIdleSeasonal": 0, // Сезонный расход топлива на холостом ходу
  "consumptionPer100KmSeasonalBegin": "2024-10-30T10:31:17.196Z", // День/месяц начала работы сезонной нормы расхода на 100 км
  "consumptionPer100KmSeasonalEnd": "2024-10-30T10:31:17.196Z", // День/месяц окончания работы сезонной нормы расхода на 100 км
  "consumptionPerHourSeasonalBegin": "2024-10-30T10:31:17.196Z", // День/месяц начала работы сезонной нормы расхода на моточас
  "consumptionPerHourSeasonalEnd": "2024-10-30T10:31:17.196Z", // День/месяц окончания работы сезонной нормы расхода на моточас
  "consumptionIdleSeasonalBegin": "2024-10-30T10:31:17.196Z", // День/месяц начала работы сезонной нормы расхода на х/х
  "consumptionIdleSeasonalEnd": "2024-10-30T10:31:17.196Z", // День/месяц окончания работы сезонной нормы расхода на х/х
  "mileageCalcMethod": 0, // Вид расчёта пробега. 0 - ByGps, 1 - ByMileageSensor
  "mileageCoeff": 0, // Коэффициент пробега при расчёте пробега по GPS (по умолчанию - 1)
  "locationByCellId": true, // Вычислять ли положение по базовым станциям, если координаты по GPS невалидны?
  "dottedLineTrackWhenNoCoords": true, // Обозначать пунктиром трек при отсутствии координат.
  "showLineTrackWhenNoCoords": true, // Обозначать трек при отсутствии координат.
  "counters": { // состояний счётчиков
    "mileageEnabled": true,  // Флаг включения счётчика "Пробег"
    "motohoursEnabled": true, // Флаг включения счётчика "Моточасы"
    "mileage": 0, // Пробег
    "motohours": 0 // Моточасы 
  },
  "cmsv6Parameters": { // Dto для CMSv6
    "id": "string", // CMSV6 Идентификатор
    "enabled": true, // Признак включения
    "host": "string", // IP-адрес или доменное имя из URL веб-сайта CMSV6.  

// Порт также можно указать. В случае использования безопасного соединения необходимо указать протокол.
    "login": "string", // CMSV6 имя учетной записи
    "password": "string" // CMSV6 — пароль учетной записи
  },
  "inspectionTasks": [ // Задания на ТО
    {
      "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", // ID задачи
      "enabled": true, // Признак включения
      "name": "string", // Имя задания
      "description": "string", // Описание задания
      "mileageCondition": 0, // Условие по пробегу (в метрах)
      "lastMileage": 0, // Пробег (в метрах) на момент последнего ТО
      "motohoursCondition": 0, // Условие по моточасам (в секундах)
      "lastMotohours": 0, // Моточасы (в секундах) на момент последнего ТО
      "periodicCondition": 0, // Условие периодичности по времени
      "kind": 0, // Определяет вид периодичности ТО. 0 - Дни, 1 - Месяца, 2 - Годы
      "lastInspectionDate": "2024-10-30T10:31:17.196Z", // Дата последнего ТО
      "maxQuantity": 0  // Условие по количеству записей для деактивации
    }
  ],
  "drivers": [  // Список водителей
    {
      "vehicleId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", // Идентификатор объекта.
      "inputNumber": 0, // № входа.
      "createTime": "2024-10-30T10:31:17.196Z", // Момент времени создания назначения.
      "comment": "string", // Комментарий.
      "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", // Идентификатор назначения.
      "driverId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", // Идентификатор водителя.
      "beginTime": "2024-10-30T10:31:17.196Z", // Момент времени начала назначения.
      "endTime": "2024-10-30T10:31:17.196Z" // Момент времени окончания назначения.
    }
  ],
  "commandTemplates": [ // Список шаблонов команд
    {
      "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", // ID шаблона
      "name": "string", // Название шаблона команд
      "command": "string", // Команда на выполнение
      "retries": 0 // Лимит попыток отправки
    }
  ],
  "sensors": [  // Список датчиков 
    {
      "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", // ID датчика
      "kind": 0, // Определяет виды датчиков. 0 - Simple, 1 - Composite
      "type": 0, // Определяет типы датчиков. 0 - None, 1 - FuelLvl, 2 - PowerLevel, 3 - Consumption, 4 - Ignition,

// 5 - Crane, 6 - Greider, 8 - Power, 11 - Arrow, 14 - Otval, 15 - Sand, 17 - MixerLand, 18 - MixerMove, 20 - Temperature,

// 21 - Warning, 22 - Metla, 23 - Kosilka, 24 - DriverRFID, 25 - ReFueller, 27 - GrainLvl, 28 - EngineRPM, 29 - BodyUp,

// 31 - EngineTemperature, 32 - TrailerRFID, 33 - Tank, 34 - Unloading, 35 - Custom, 36 - GNSS, 37 - WeighingTerminal,

// 38 - RelativeMotohours, 39 - MileageSensor, 40 - Motohours, 41 - BunkerLowLevel, 42 - BunkerHighLevel,

// 43 - AppliedKg, 44 - TreatedHa, 45 - RateKgHa, 46 - FertilizerLevel, 47 - FactOfWork, 48 - ReapingAggregate, 49 - AverageRateKgHa, 50 - Speed
      "name": "string", // Имя датчика
      "inputType": 0, // Тип входа, на который подключается определенный тип датчика. 0 - Digital, 1 - Analog, 2 - Impulse,

// 3 - Rs232, 4 - Rs485, 5 - FMS, 6 - Diagnosis, 7 - Wire, 8 - ImpulseFrequency, 9 - BLE, 255 - Virtual
      "inputNumber": 0, // Номер входа
      "pseudonym": "string", // Псевдоним
      "medianDegree": 0, // Степень медианной фильтрации
      "isInverted": true, // Признак инверсии
      "disabled": true, // Датчик не участвует в обработке
      "gradeType": 0, // Способ тарировки показаний датчика.  0 - Default, 1 - Digital, 2 - GradeTable, 3 - CounterSummary, 4 - CounterDiffs
      "gradesTables": [ // Тарировка
        {
          "grades": [ // Таблицы тарировки
            {
              "input": 0, // Вход
              "output": 0 // Выход
            }
          ],
          "relevanceTime": "2024-10-30T10:31:17.196Z"  // Время, с которого наступает актуальность таблицы тарировки
        }
      ],
      "showInTooltip": true, // Отображение в подсказке
      "showLastValid": true, // Отображать последнее валидное значение
      "showAsDutOnGraph": true, // Отображать на графике как датчик уровня топлива
      "showWithoutIgn": true, // Отображать без включенного зажигания
      "agrFunction": 0, // Агрегирующая функция. 0 - SUM, 1 - AVG, 2 - EXPRESSION 
      "expr": "string", // Выражение
      "children": [ // Cписок добавленных в агрегацию физ. датчиков
        "string" 
      ],
      "customParams": { // Дополнительные настройки
        "additionalProp1": "string",
        "additionalProp2": "string",
        "additionalProp3": "string"
      },
      "summaryMaxValue": 0, // Определяет максимальное значение датчика в режиме накопления.
      "valueIntervals": [ // Интервалы значений для подсветки в мониторинге
        {
          "from": 0, // С какого значения
          "color": "string", // Каким цветом
          "text": "string" // Текст подписи к этому интервалу
        }
      ]
    }
  ],
  "highlightSensorGuid": "3fa85f64-5717-4562-b3fc-2c963f66afa6", // Guid датчика, выбранного для подсветки его значения в различных интервалах
  "customFields": [ // Список произвольных полей
    {
      "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", // System.Guid идентификатор элемента сущности
      "name": "string", // Наименование произвольного поля
      "value": "string", // Значение произвольного поля
      "forClient": true, // Отобразить произвольное поле у клиента
      "forTooltip": true, // Отобразить произвольное поле в подсказке (при наведении на ТС на карте)
      "forReport": true // Отобразить произвольное поле в отчете
    }
  ],
  "motohoursCalcMethod": 0 // Вид расчета моточасов. 0 - ByIgnitionSensor, 1 - ByMotohoursSensor, 2 - ByRelativeMotohoursSensor
}

Валидация:
- сезонный параметр может быть задан только если задана соответствующая обычная норма;
- сезонные начало и окончание могут быть заданы только если задана соответствующая сезонная норма;
- при задании сезонной нормы обязательны соответствующие даты начала/окончания.

Удаление объекта

DELETE /api/v3/vehicles/{vehicleId}

Метод позволяет удалить объект, указанный в строке запроса.

Метод запроса: DELETE

URL запроса: https://hosting.glonasssoft.ru/api/v3/vehicles/{vehicleId}

Параметр запроса: {id} - Guid объекта

В заголовках запроса: X-Auth: Токен авторизации

Ответ: В случае успешного выполнения запроса вернется HTTP ответ «200».

Раздел: Устройства

Получение списка типов устройств

 GET /api/v3/devices/types

Метод позволяет получить список типов устройств. Метод возвращает информацию о типах устройств с учетом настроек авторизованного пользователя, указанного в запросе.

Метод запроса: GET

URL запроса: https://hosting.glonasssoft.ru/api/v3/devices/types

В заголовках запроса: X-Auth: Токен авторизации

Ответ:

{
    "deviceTypeId" : "", // ID типа устройства
    "deviceTypeName" : "" // Название типа устройства
}

Раздел: Датчики

Получение списка типов датчиков

 GET /api/v3/sensors/types

Метод позволяет получить список типов датчиков. Метод возвращает информацию о типах датчиков с учетом настроек авторизованного пользователя, указанного в запросе.

Метод запроса: GET

URL запроса: https://hosting.glonasssoft.ru/api/v3/sensors/types

В заголовках запроса: X-Auth: Токен авторизации

Ответ:

{
    "id": "", // ID типа датчика 
    "name": "", // Название
    "description": "", // Описание
}

Раздел: Сообщения

Данные об активности объекта

POST /api/v3/terminalMessages/count

Метод возвращает количество сообщений отправленных терминалом на сервер за указанный период.

Метод запроса POST

URL запроса: https://hosting.glonasssoft.ru/api/v3/terminalMessages/count

В заголовках запроса: X-Auth: Токен авторизации

{
  "vehicleIds": [
    id // здесь передается список идентификаторов объектов
  ],
  "from": "2023-03-12T07:09:02.364Z", // от какой даты выполнять запрос
  "to": "2023-03-14T07:09:02.364Z" // до какой даты выполнять запрос
}

Ответ:

[
  {
    "vehicleId": 0, // идентификатор объекта
    "count": 0 // количество сообщений за период
  }
]

Получить тип и номер входа сырого параметра 

POST /api/v3/terminalMessages/mapping

Запрос позволяет узнать тип и номер входа для сырого параметра, приходящего по указанному протоколу.

URL запроса: https://hosting.glonasssoft.ru/api/v3/terminalMessages/mapping

В заголовках запроса: X-Auth: Токен авторизации

{
  "protocolType": 0,
  "params": ["string"]
}

ПараметрОписание
protocolTypeID типа протокола
params

Массив наименований параметров в сообщении

Ответ:

{
  "protocolType": 0,
  "mapping": {
    "additionalProp1": {
      "inputType": 0,
      "inputNumber": 0
    },
    "additionalProp2": {
      "inputType": 0,
      "inputNumber": 0
    }
  }
}

ПараметрОписание
protocolTypeТип протокола
inputTypeТип входа, 0 - Цифровой, 1 - Аналоговый, 2 - Импульсный, 3 - Rs232, 4 - Rs485, 5 - FMS, 6 - Диагностический, 7 - 1-Wire, 8 - Частотный, 9 - BLE, 255 - Виртуальный
inputNumber

Номер входа

Перечень ID протоколов в статье - ID протоколов для получения типов и номеров входа сырого параметра.

Запрос списка сообщений

POST /api/v3/terminalMessages

Метод возвращает список сообщений терминала объекта за выбранный период.

Метод запроса POST

URL запроса: https://hosting.glonasssoft.ru/api/v3/terminalMessages

В заголовках запроса: X-Auth: Токен авторизации

{
  "vehicleId": 0, // id объекта
  "from": "2023-03-29T09:14:46.107Z", // начало периода запроса
  "to": "2023-03-29T09:14:46.107Z" // конец периода запроса
}

ПараметрОписание
vehicleIdID объекта
fromДата и время начала периода запроса
toДата и время окончания периода запроса

Ответ:

[
  {
    "messages": [
      {
        "deviceTime": "2023-11-29T07:40:44.052Z",
        "serverTime": "2023-11-29T07:40:44.052Z",
        "speed": 0,
        "altitude": 0,
        "latitude": 0,
        "longitude": 0,
        "satellites": 0,
        "course": 0,
        "voltage": 0,
        "parameters": {
          "additionalProp1": "string",
          "additionalProp2": "string",
          "additionalProp3": "string"
        },
        "photoCount": 0,
        "lbsCorrectedCoords": true,
        "protocolType": 0
      }
    ]
  }
]

ПараметрОписание
deviceTimeВремя сообщения терминала
serverTimeВремя когда сообщение поступило на сервер
speedСкорость
altitudeВысота над уровнем моря
latitudeШирота
longitudeДолгота
satellitesКол-во спутников
courseКурс
voltageБортовое напряжение
parametersСписок параметров и их значений
photoCountКоличество фото
lbsCorrectedCoordsПризнак того, что координаты были скорректированы по LBS, true - скорректированы, false - не скорректированы
protocolTypeID типа протокола

Раздел: Запрос данных об объекте за период

Получение данных о пробеге и моточасах транспортного средства

 POST /api/v3/vehicles/mileageAndMotohours

Метод запроса: POST

URL запроса: https://hosting.glonasssoft.ru/api/v3/vehicles/mileageAndMotohours

В заголовках запроса: X-Auth: Токен авторизации

Тело запроса:

{
  "sampling": 0, // Частота дискретизации в секундах, минимум 60 секунд. Весь период разбивает на подпериоды с указанной частотой.
  "vehicleIds": [0], // Список ID объектов
  "from": "2023-08-09T14:23:14.572Z", // Начало периода
  "to": "2023-08-09T14:23:14.572Z", // Окончание периода
  "timezone": 0 // Временная зона. Если не указана, то по умолчанию UTC+3
}

Ответ:

[
  {
    "vehicleId": 0, // ID объекта
    "name": "string", // Имя ТС
    "periods": [ // Периоды
      {
        "start": "2023-08-09T14:23:14.574Z", // Начало 
        "end": "2023-08-09T14:23:14.574Z", // Окончание 
        "mileage": 0, // Пробег за период, километры
        "mileageBegin": 0, // Пробег на начало периода, километры 
        "mileageEnd": 0, // Пробег на окончание периода, километры
        "motohours": 0, // Моточасы за период, секунды
        "motohoursBegin": 0, // Моточасы на начало периода, секунды
        "motohoursEnd": 0 // Моточасы на окончание периода, секунды
      }
    ]
  }
]

Получение данных о расходе транспортного средства

 POST /api/v3/vehicles/fuelConsumption

Метод запроса: POST

URL запроса: https://hosting.glonasssoft.ru/api/v3/vehicles/fuelConsumption

В заголовках запроса: X-Auth: Токен авторизации

Тело запроса:

{
  "sampling": 0, // Частота дискретизации в секундах, минимум 60 секунд. Весь период разбивает на подпериоды с указанной частотой.
  "vehicleIds": [0], // Список ID объектов
  "from": "2023-08-09T14:23:14.572Z", // Начало периода
  "to": "2023-08-09T14:23:14.572Z", // Окончание периода
  "timezone": 0 // Временная зона. Если не указана, то по умолчанию UTC+3
}

Ответ:

[
  {
    "vehicleId": 0, // ID объекта
    "name": "string", // Имя ТС
    "periods": [ // Периоды
      {
        "start": "2023-08-09T14:23:14.574Z", // Начало 
        "end": "2023-08-09T14:23:14.574Z", // Окончание 
        "fuelLevelStart": 0, // Уровень топлива на начало периода
        "fuelLevelEnd": 0, // Уровень топлива на конец периода
        "fuelConsumption": 0, // Расход топлива
        "fuelConsumptionMove": 0 // Расход топлива в движении
      }
    ]
  }
]

Максимальное допустимое количество периодов в ответе - 1440. При превышении этого значения будет получена ошибка ""ApiCode":204,"ApiMessage":"Прислана неправильная модель","Message":"Задан слишком маленький период дискретизации"".

При большом количестве периодов существенно растет нагрузка, синхронный запрос может выдать ошибку по таймауту. Рекомендуем не занижать необходимое значение параметра "sampling".

Получение данных о заправках и сливах транспортного средства

 POST /api/v3/vehicles/fuelInOut

Метод запроса: POST

URL запроса: https://hosting.glonasssoft.ru/api/v3/vehicles/fuelInOut

В заголовках запроса: X-Auth: Токен авторизации

Тело запроса:

{
  "vehicleIds": [0], // Список ID объектов
  "from": "2023-08-09T14:27:44.772Z", // Дата и время начало запроса
  "to": "2023-08-09T14:27:44.772Z", // Дата и время окончания запроса
  "timezone": 0 // Временная зона. Если не указана, то по умолчанию UTC+3
}

Ответ:

[
  {
    "start": "2023-08-09T14:27:44.773Z", // Начало периода
    "end": "2023-08-09T14:27:44.773Z", // Окончание периода
    "vehicleId": 0, // ID объекта
    "name": "string", // Имя объекта
    "model": "string", // Модель объекта
    "fuels": [ // Массив данным по заправкам и сливам
      {
        "event": 0, // Тип события 20 - TankFuelIn - заправка, 21 - TankFuelOut - слив
        "startDate": "2023-08-09T14:27:44.773Z", // Начало
        "endDate": "2023-08-09T14:27:44.773Z", // Окончание
        "valueFuel": 0, // Количество
        "fuelStart": 0, // Уровень топлива на начало события
        "fuelEnd": 0 // Уровень топливо на конец события
      }
    ]
  }
]

Получение данных по событиям движения и стоянок у объектов

POST /api/v3/vehicles/moveStop

Метод запроса: POST

URL запроса: https://hosting.glonasssoft.ru/api/v3/vehicles/moveStop

В заголовках запроса: X-Auth: Токен авторизации

Тело запроса:

{
  "vehicleIds": [ ], // Список ID объектов
  "from": "2024-01-30T10:12:19.125Z", // Дата и время начало запроса
  "to": "2024-01-30T10:12:19.125Z", // Дата и время окончания запроса
  "timezone": 0 // Временная зона. Если не указана, то по умолчанию UTC+3
}

Ответ:


  {
    "vehicleId": 0, // ID объекта
    "vehicleName": "string", // Имя объекта
    "moves": [      // Событие движения
      {
        "mileage": 0, // Пробег, км
        "eventId": 0, // Идентификатор события
        "eventName": "string", // Название события
        "start": "2024-01-30T10:17:13.789Z", // Дата и время начало события
        "end": "2024-01-30T10:17:13.789Z", // Дата и время окончания события
        "duration": 0 // Продолжительность события, секунд
      }
    ],
    "stops": [       // События стоянок
      {
        "address": "[Street] [House] [City] [State] [Country] [Coordinates]", // Адрес события Улица, Дом, Город, Регион, Страна, Координаты
        "eventId": 0, // Идентификатор события
        "eventName": "string", // Название события
        "start": "2024-01-30T10:17:13.789Z", // Дата и время начало события
        "end": "2024-01-30T10:17:13.789Z", // Дата и время окончания события
        "duration": 0 // Продолжительность события, секунд
      }
    ]
  }
]

Получение последних данных объекта

POST /api/v3/vehicles/getlastdata

Метод запроса: POST

URL запроса: https://hosting.glonasssoft.ru/api/v3/vehicles/getlastdata

В заголовках запроса: X-Auth: Токен авторизации

В теле запроса перечисляете массив id объектов, в квадратных скобках через запятую.

Ответ:
  {
    "vehicleId": 0, //Идентификатор объекта.
    "vehicleGuid": "3fa85f64-5717-4562-b3fc-2c963f66afa6",//Идентификатор объекта.
    "vehicleNumber": "string",//Номер объекта.
    "receiveTime": "2024-02-27T14:11:00.315Z",//Время получения записи на сервере, т.е. время срабатывания + время передачи от устройства на сервер
    "recordTime": "2024-02-27T14:11:00.315Z",//Время записи от устройства, т.е. время фактического события на транспортном средстве.
    "state": 0,//Определяет состояния объекта в мониторинге: нет данных - 0; отключена - 1; остановка - 2; стоянка - 3; в движении - 4.
    "speed": 0,//Скорость объекта.
    "course": 0,//Курс движения [0;360]
    "latitude": 0,//Широта [-90°;90°].
    "longitude": 0,//Долгота [-180°;180°].
    "address": "string",//Адрес.
    "geozones": [ //Сведения по геозонам.
      {
        "id": 0,
        "name": "string"
      }
    

Раздел: Запрос посещений геообъектов

Получение списка всех геообъектов

 POST /api/v3/gis/find

Метод позволяет получить список геообъектов клиента. Возвращает массив геообъектов со всей информацией о них.

Метод запроса: POST

URL запроса: https://hosting.glonasssoft.ru/api/v3/gis/find

В заголовках запроса: X-Auth: Токен авторизации

Тело запроса:

{
  "parentId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
}

Ответ:

[
  {
    "id": 0, // Идентификатор объекта геозоны
    "name": "string", // Название объекта геозоны
    "type": 0, // Тип объекта геозоны
    "fname": "string", // Имя файла
    "parentId": "string", // Идентификатор клиента
    "radius": 0, // Радиус геообъекта
    "beginCalc": "2023-08-01T07:54:54.893Z", // Дата начала расчета
    "endCalc": "2023-08-01T07:54:54.893Z", // Дата окончания расчета
    "description": "string", // Описание
    "area": 0, // Площадь, м2
    "perimetr": 0, // Периметр, м
    "createDate": "2023-08-01T07:54:54.893Z", // Дата создания
  }
]

Запрос пересечений по объектам

 POST /api/v3/gis/intersections/vehicles

Метод позволяет получить список пересечений выбранных объектов со всеми геообъектами за выбранный период.

Метод запроса: POST

URL запроса: https://hosting.glonasssoft.ru/api/v3/gis/intersections/vehicles

В заголовках запроса: X-Auth: Токен авторизации

Тело запроса:

{
  "startDate": "2023-08-02T06:13:18.551Z", // Дата начала запроса
  "endDate": "2023-08-02T06:13:18.551Z", // Дата окончания
  "ids": [ ], // Массив id объектов
  "byTime": 0, // Объединение событий по времени 
  "byDist": 0, // Объединение событий по расстоянию
  "filterByTime": 0, // Фильтрация событий по времени нахождения
  "filterByHalfPerimeter": true // Фильтрация событий по пробегу половины периметра
}

Ответ:
[
  {
    "geozoneId": 0, // ID геообъекта
    "geozoneName": "string", // Название геообъекта
    "startDate": "2023-08-02T06:13:18.554Z", // Дата въезда
    "endDate": "2023-08-02T06:13:18.554Z", // Дата выезда
    "duration": 0, // Продолжительность нахождения в геообъекте
    "vehicleId": 0, // ID объекта
    "vehicleName": "string" // Имя объекта
  }
]

Запрос пересечений по геообъектам

 POST /api/v3/gis/intersections/geozones

Метод позволяет получить список пересечений выбранных геообъектов со всеми объектами за выбранный период.

Метод запроса: POST

URL запроса: https://hosting.glonasssoft.ru/api/v3/gis/intersections/geozones

В заголовках запроса: X-Auth: Токен авторизации

Тело запроса:

{
  "startDate": "2023-08-02T06:13:18.551Z", // Дата начала запроса
  "endDate": "2023-08-02T06:13:18.551Z", // Дата окончания
  "ids": [ ], // Массив id геообъектов
  "byTime": 0, // Объединение событий по времени 
  "byDist": 0, // Объединение событий по расстоянию
  "filterByTime": 0, // Фильтрация событий по времени нахождения
  "filterByHalfPerimeter": true // Фильтрация событий по пробегу половины периметра
}

Ответ:

[
  {
    "geozoneId": 0, // ID геообъекта
    "geozoneName": "string", // Название геообъекта
    "startDate": "2023-08-02T06:13:18.554Z", // Дата въезда
    "endDate": "2023-08-02T06:13:18.554Z", // Дата выезда
    "duration": 0, // Продолжительность нахождения в геообъекте
    "vehicleId": 0, // ID объекта
    "vehicleName": "string" // Имя объекта
  }
]

Раздел: Уведомления

Запрос списка уведомлений клиента

POST /api/v3/notifications/find

Метод возвращает информацию об уведомлениях переданного клиента и его клиентов ниже по иерархии.

Метод запроса POST

URL запроса: https://hosting.glonasssoft.ru/api/v3/notifications/find

В заголовках запроса: X-Auth: Токен авторизации

{
  "parentId": "" // id клиента
}

Ответ:

[
  {
    "id": 0, // ID уведомления
    "name": "string", // Название уведомления
    "active": true, // Состояние true - активен, false - деактивирован
    "type": 0, // Шаблон события 0 - Въезд и выезд из геозоны, 2 - Превышение скорости, 4 - Слив, 5 - Заправка, 6 - Сработка тревожной кнопки, 7 - Потеря связи с объектом, 8 - Сработка дискретного датчика, 9 - Значение аналогового датчика, 10 - Адрес, 11 - Простой, 12 - Выполнение ТО
    "userId": "", // Пользователь, создавший уведомление
    "parentId": "", // Идентификатор клиента
    "parentName": "string" // Имя клиента
  }
]

Запрос настроек уведомления

GET /api/v3/notifications/{id}

Метод возвращает данные правил формирования выбранного уведомления.

Метод запроса GET

URL запроса: https://hosting.glonasssoft.ru/api/v3/notifications/{id}

Параметр запроса: {id} - id уведомления

В заголовках запроса: X-Auth: Токен авторизации

Ответ:

{
  "id": 0, // 
id уведомления
  "type": 0, // Шаблон события 0 - Въезд и выезд из геозоны, 2 - Превышение скорости, 4 - Слив, 5 - Заправка, 6 - Сработка тревожной кнопки, 7 - Потеря связи с объектом, 8 - Сработка дискретного датчика, 9 - Значение аналогового датчика, 10 - Адрес, 11 - Простой, 12 - Выполнение ТО
  "userId": "", // Пользователь, создавший уведомление
  "parentId": "", // Идентификатор клиента
  "parentName": "string", // Имя клиента
  "name": "string", // Название уведомления
  "active": true, // Состояние true - активен, false - деактивирован
  "vehicleIds": [ // Список id объектов для анализа
    0
  ],
  "geoids": [ // 
Список id геообъектов для анализа
    0
  ],
  "fieldids": [ // 
Список id полей для анализа
    0
  ],
  "settings": { // Список параметров уведомления
    "additionalProp1": "string",
    "additionalProp2": "string",
    "additionalProp3": "string"
  },
  "toEmail": true, // 
Флаг, что активна настройка "Отправка уведомлений на эл. почту пользователям системы"
  "recipientIds": [ // Список Guid пользователей, которым надо отправить сообщение на почту при срабатывании правила
    ""
  ],
  "enableSideEmails": true, // 
Флаг, что активна настройка "Отправка сообщений на эл. почту сторонним пользователям"
  "sideEmails": [ // Список электронных адресов для отсылки уведомлений
    "string"
  ],
  "toTelegram": true, // 
Флаг активности отправки в Telegram
  "telegrams": [ // Список получателя уведомлений в Telegram.
    {
      "id": 0, // 
Идентификатор участника чата
      "info": "string" // Дополнительные сведения
    }
  ],
  "toMobile": true, // 
Флаг активности отправки в мобильное приложение
  "toClient": true, // Флаг активности отправки в интерфейсе системы
  "stored": true, // Определяет необходимость сохранять уведомления, производные от этого правила, в журнале истории уведомлений.
  "kind": 0, // Определяет вид уведомления
  "activationMode": 0, // Вид активации уведомления 0 - Сейчас, 1 - В определенную дату и время
  "activationTime": "2023-03-29T09:57:48.932Z", // Дата/время активации правила (UTC)
  "timezone": 0, // Сдвиг часового пояса
  "validity": 0, // Срок действия в днях (1-90)
  "autoProlongation": true // Автопродление срока действия
}

Редактирование уведомления

PUT /api/v3/notifications/

Метод позволяет отредактировать уведомление.

Метод запроса PUT

URL запроса: https://hosting.glonasssoft.ru/api/v3/notifications

В заголовках запроса: X-Auth: Токен авторизации

Тело запроса:
{
 "id": 0, // id уведомления
  "type": 0, // Шаблон события 0 - Въезд и выезд из геозоны, 2 - Превышение скорости, 4 - Слив, 5 - Заправка, 6 - Сработка тревожной кнопки, 7 - Потеря связи с объектом, 8 - Сработка дискретного датчика, 9 - Значение аналогового датчика, 10 - Адрес, 11 - Простой, 12 - Выполнение ТО
  "userId": "", // Пользователь, создавший уведомление
  "parentId": "", // Идентификатор клиента
  "parentName": "string", // Имя клиента
  "name": "string", // Название уведомления
  "active": true, // Состояние true - активен, false - деактивирован
  "vehicleIds": [ // Список id объектов для анализа
    0
  ],
   "geoids": [ // Список id геообъектов для анализа
    0
  ],
  "fieldids": [ // Список id полей для анализа
    0
  ],
  "settings": { // Список параметров уведомления
    "additionalProp1": "string",
    "additionalProp2": "string",
    "additionalProp3": "string"
  },
  "toEmail": true, // Флаг, что активна настройка "Отправка уведомлений на эл. почту пользователям системы"
  "recipientIds": [ // Список Guid пользователей, которым надо отправить сообщение на почту при срабатывании правила
    ""
  ],
  "enableSideEmails": true, // Флаг, что активна настройка "Отправка сообщений на эл. почту сторонним пользователям"
  "sideEmails": [ // Список электронных адресов для отсылки уведомлений
    "string"
  ],
  "toTelegram": true, // Флаг активности отправки в Telegram
  "telegrams": [ // Список получателя уведомлений в Telegram.
    {
      "id": 0, // Идентификатор участника чата
      "info": "string" // Дополнительные сведения
    }
  ],
  "toMobile": true, // Флаг активности отправки в мобильное приложение
  "toClient": true, // Флаг активности отправки в интерфейсе системы
  "stored": true, // Определяет необходимость сохранять уведомления, производные от этого правила, в журнале истории уведомлений.
  "kind": 0, // Определяет вид уведомления
  "activationMode": 0, // Вид активации уведомления 0 - Сейчас, 1 - В определенную дату и время
  "activationTime": "2023-03-29T09:57:48.932Z", // Дата и время активации правила (UTC)
  "timezone": 0, // Сдвиг часового пояса
  "validity": 0, // Срок действия в днях (1-90)
  "autoProlongation": true // Автопродление срока действия
}

Ответ:

Success

Автоматическое продление уведомлений 

PUT /api/v3/notifications/prolongation

Метод позволяет продлить уведомления.

Метод запроса PUT

URL запроса: https://hosting.glonasssoft.ru/api/v3/notifications/prolongation

В заголовках запроса: X-Auth: Токен авторизации.

Тело запроса:

[

0

]

где 0 идентификатор ids.

Удаление уведомления

DELETE /api/v3/notifications/{id}

Метод позволяет удалить выбранное уведомление.

Метод запроса DELETE

URL запроса: https://hosting.glonasssoft.ru/api/v3/notifications/{id}

Передаваемый параметр: {id} - id уведомления

В заголовках запроса: X-Auth: Токен авторизации

Ответ:

Success

Раздел: Водители

Получить список водителей клиента

POST /api/v3/Drivers/find

Передается параметр: parentId - ID клиента-родителя

Ответ:

[
  {
    "name": "string", // Определяет наименование
    "description": "string", // Определяет описание
    "hiredate": "2023-06-30T09:37:58.407Z", // Определяет дату найма
    "chopdate": "2023-06-30T09:37:58.407Z", // Определяет дату увольнения
    "exclusive": true, // Определяет признак "Исключительный"
    "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", // ID водителя
    "parentId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", // Guid родителя
    "deleted": true // Признак удаления
  }
]

Получить данные о водителе

GET /api/v3/Drivers/{driverGuid}

Передается параметр: ID водителя

Ответ:

{
  "name": "string", // Определяет наименование
  "description": "string", // Определяет описание
  "hiredate": "2023-06-30T09:33:33.083Z", // Определяет дату найма
  "chopdate": "2023-06-30T09:33:33.083Z", // Определяет дату увольнения
  "exclusive": true, // Определяет признак "Исключительный"
  "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", // ID водителя
  "parentId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", // Guid родителя
  "deleted": true // Признак удаления
}

Добавить водителя

POST /api/v3/Drivers

Запрос:

{
  "name": "string",
  "description": "string",
  "hiredate": "2023-06-30T12:50:54.020Z",
  "chopdate": "2023-06-30T12:50:54.020Z",
  "exclusive": true,
  "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "parentId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "deleted": true
}

Ответ:

{
  "name": "string",
  "description": "string",
  "hiredate": "2023-06-30T12:50:54.051Z",
  "chopdate": "2023-06-30T12:50:54.051Z",
  "exclusive": true,
  "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "parentId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "deleted": true
}

Редактировать водителя

PUT /api/v3/Drivers

Запрос:

{
  "name": "string",
  "description": "string",
  "hiredate": "2023-06-30T12:50:27.910Z",
  "chopdate": "2023-06-30T12:50:27.910Z",
  "exclusive": true,
  "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "parentId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "deleted": true
}

Ответ:

{
  "name": "string",
  "description": "string",
  "hiredate": "2023-06-30T12:50:27.929Z",
  "chopdate": "2023-06-30T12:50:27.929Z",
  "exclusive": true,
  "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "parentId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "deleted": true
}

Удалить водителя

DELETE /api/v3/Drivers/{driverGuid}

Передается параметр: ID водителя

Ответ:

Success

Раздел: Журнал назначений

Назначение водителя на объект

Получить назначения водителей запросом к водителю

POST /api/v3/DriversVehiclesAssignments/GetByDrivers

Запрос:

{
  "Ids": [
    "3fa85f64-5717-4562-b3fc-2c963f66afa6"
  ],
  "BeginTime": "2023-06-30T12:49:04.365Z",
  "EndTime": "2023-06-30T12:49:04.365Z"
}

Ответ:

[
  {
    "VehicleId": 0,
    "CreateTime": "2023-06-30T09:52:31.240Z",
    "Id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "DriverId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "BeginTime": "2023-06-30T09:52:31.240Z",
    "EndTime": "2023-06-30T09:52:31.240Z"
  }
]

Получить назначения водителей запросом к объекту

POST /api/v3/DriversVehiclesAssignments/GetByVehicles

Запрос:

{
  "Ids": [
    0
  ],
  "BeginTime": "2023-06-30T12:48:39.419Z",
  "EndTime": "2023-06-30T12:48:39.419Z"
}

Ответ:

[
  {
    "VehicleId": 0,
    "CreateTime": "2023-06-30T09:54:01.631Z",
    "Id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "DriverId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "BeginTime": "2023-06-30T09:54:01.631Z",
    "EndTime": "2023-06-30T09:54:01.631Z"
  }
]

Создать назначение водителя на объект

POST /api/v3/DriversVehiclesAssignments

Передается массив назначений

Запрос:

[
  {
    "VehicleId": 0, // Идентификатор объекта
    "CreateTime": "2023-06-30T11:04:46.902Z", // Момент времени создания назначения
    "DriverId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", // Идентификатор водителя
    "BeginTime": "2023-06-30T11:04:46.902Z", // Момент времени начала назначения
    "EndTime": "2023-06-30T11:04:46.902Z" // Момент времени окончания назначения. Необязательно.
  }
]

Ответ:

[
  {
    "VehicleId": 0,
    "CreateTime": "2023-06-30T11:04:46.903Z",
    "Id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "DriverId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "BeginTime": "2023-06-30T11:04:46.903Z",
    "EndTime": "2023-06-30T11:04:46.903Z"
  }
]

Изменить назначения водителей на объекты

PUT /api/v3/DriversVehiclesAssignments

Запрос:

[
  {
    "VehicleId": 0,
    "CreateTime": "2023-06-30T11:14:08.117Z",
    "Id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", // Идентификатор назначения
    "DriverId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "BeginTime": "2023-06-30T11:14:08.117Z",
    "EndTime": "2023-06-30T11:14:08.117Z"
  }
]

Ответ:

[
  {
    "VehicleId": 0,
    "CreateTime": "2023-06-30T11:14:53.349Z",
    "Id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "DriverId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "BeginTime": "2023-06-30T11:14:53.349Z",
    "EndTime": "2023-06-30T11:14:53.349Z"
  }
]

Удалить назначения водителей на объекты

DELETE /api/v3/DriversVehiclesAssignments

Запрос:

[
    "3fa85f64-5717-4562-b3fc-2c963f66afa6",
]

Ответ:

Success

Назначение карты-метки водителю

Получить назначения меток запросом к водителю

POST /api/v3/DriversRfidsAssignments/GetByDrivers

Запрос:

{
  "Ids": [
    "3fa85f64-5717-4562-b3fc-2c963f66afa6"
  ],
  "BeginTime": "2023-06-30T12:47:12.162Z",
  "EndTime": "2023-06-30T12:47:12.162Z"
}

Ответ:

[
  {
    "Rfid": "3fa85f64-5717-4562-b3fc-2c963f66afa6", // Идентификатор метки
    "Id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", // Идентификатор назначения
    "DriverId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", // Идентификатор водителя
    "BeginTime": "2023-06-30T11:19:40.703Z",
    "EndTime": "2023-06-30T11:19:40.703Z"
  }
]

Получить назначения меток запросом к карте-метке

POST /api/v3/DriversRfidsAssignments/GetByRfids

Запрос:

{
  "Ids": [
    "3fa85f64-5717-4562-b3fc-2c963f66afa6"
  ],
  "BeginTime": "2023-06-30T12:47:12.162Z",
  "EndTime": "2023-06-30T12:47:12.162Z"
}

Ответ:

[
  {
    "Rfid": "3fa85f64-5717-4562-b3fc-2c963f66afa6", // Идентификатор метки
    "Id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", // Идентификатор назначения
    "DriverId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", // Идентификатор водителя
    "BeginTime": "2023-06-30T11:19:40.703Z",
    "EndTime": "2023-06-30T11:19:40.703Z"
  }
]

Добавить назначения меток на водителей

POST /api/v3/DriversRfidsAssignments

Запрос:

[
  {
    "Rfid": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "DriverId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "BeginTime": "2023-06-30T11:27:08.635Z",
    "EndTime": "2023-06-30T11:27:08.635Z"
  }
]

Ответ:

[
  {
    "Rfid": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "Id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "DriverId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "BeginTime": "2023-06-30T11:27:08.677Z",
    "EndTime": "2023-06-30T11:27:08.677Z"
  }
]

Изменить назначения меток на водителей

PUT /api/v3/DriversRfidsAssignments

Запрос:

[
  {
    "Rfid": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "Id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "DriverId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "BeginTime": "2023-06-30T11:28:43.330Z",
    "EndTime": "2023-06-30T11:28:43.330Z"
  }
]

Ответ:

[
  {
    "Rfid": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "Id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "DriverId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "BeginTime": "2023-06-30T11:28:43.331Z",
    "EndTime": "2023-06-30T11:28:43.331Z"
  }
]

Удалить назначения меток на водителей

DELETE /api/v3/DriversRfidsAssignments

Запрос:

[
    "3fa85f64-5717-4562-b3fc-2c963f66afa6"
]

Ответ:

Success

Назначение топливной карты водителю

Получить назначения топливных карт запросом к водителю

POST /api/v3/DriversFuelCardsAssignments/GetByDrivers

Запрос:

{
  "Ids": [
    "3fa85f64-5717-4562-b3fc-2c963f66afa6"
  ],
  "BeginTime": "2023-06-30T12:45:10.852Z",
  "EndTime": "2023-06-30T12:45:10.852Z"
}

Ответ:

[
  {
    "CardId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "Id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "DriverId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "BeginTime": "2023-06-30T11:58:04.695Z",
    "EndTime": "2023-06-30T11:58:04.695Z"
  }
]

Получить назначения топливных карт запросом к топливной карте

POST /api/v3/DriversFuelCardsAssignments/GetByCards

Запрос:

{
  "Ids": [
    "3fa85f64-5717-4562-b3fc-2c963f66afa6"
  ],
  "BeginTime": "2023-06-30T12:45:10.852Z",
  "EndTime": "2023-06-30T12:45:10.852Z"
}

Ответ:

[
  {
    "CardId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "Id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "DriverId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "BeginTime": "2023-06-30T11:58:04.695Z",
    "EndTime": "2023-06-30T11:58:04.695Z"
  }
]

Добавить назначение топливной карты водителю

POST /api/v3/DriversFuelCardsAssignments

Запрос:

[
  {
    "CardId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "DriverId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "BeginTime": "2023-06-30T12:09:53.175Z",
    "EndTime": "2023-06-30T12:09:53.175Z"
  }
]

Ответ:

[
  {
    "CardId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "Id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "DriverId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "BeginTime": "2023-06-30T12:09:53.201Z",
    "EndTime": "2023-06-30T12:09:53.201Z"
  }
]

Редактировать назначение топливной карты водителю

PUT /api/v3/DriversFuelCardsAssignments

Запрос:

[
  {
    "CardId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "Id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "DriverId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "BeginTime": "2023-06-30T12:09:53.201Z",
    "EndTime": "2023-06-30T12:09:53.201Z"
  }
]

Ответ:

[
  {
    "CardId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "Id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "DriverId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "BeginTime": "2023-06-30T12:09:53.201Z",
    "EndTime": "2023-06-30T12:09:53.201Z"
  }
]

Удалить назначение топливной карты водителю

DELETE /api/v3/DriversFuelCardsAssignments

Запрос:

[
  "3fa85f64-5717-4562-b3fc-2c963f66afa6"
]

Ответ:

Success

Раздел: Назначения агрегатов

Получить список назначений агрегатов на выбранные объекты

POST /api/v3/Trailers

Пример запроса:

{
  "startDate": "2023-11-14T10:48:03.671Z",
  "endDate": "2023-11-14T10:48:03.671Z",
  "ids": [ 0 ],
  "timezone": 0
}

ПараметрОписание
startDateДата и время начала запроса
endDateДата и время окончания запроса
idsМассив ID объектов
timezoneЧасовой пояс, по умолчанию UTC.

Пример ответа:

[
  {
    "SD": "2023-11-14T10:48:03.717Z",
    "ED": "2023-11-14T10:48:03.717Z",   
     "id": 0,
    "SLat": 0,
    "SLon": 0,
    "ELat": 0,
    "ELon": 0,
    "mileage": 0
    "Duration": 0
    "Address": "string",
    "Address2": "string",
    "name": "string",
    "rid": "string",
    "rguid": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "trailer": {
      "ModelGuid": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "Number": "string",
      "Description": "string",
      "OwnerGuid": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "ExternalID": "string",
      "Guid": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "CreateTime": "2023-11-14T10:48:03.717Z",
      "UpdateTime": "2023-11-14T10:48:03.717Z",
      "IsDeleted": true
    },
    "filesCount": 0,
  }
]

ПараметрОписание
SDДата и время начала события
EDДата и время окончания события
idID объекта
SLatШирота начальной координаты
SLonДолгота начальной координаты
ELatШирота конечной координаты
ELonДолгота конечной координаты
mileageПробег
DurationПродолжительность
AddressАдрес начального местоположения
Address2Адрес конечного местоположения
nameИмя радиометки
ridНомер радиометки
rguidID радиометки
trailerИнформация об агрегате
ModelGuidID агрегата
NumberНазвание/номер агрегата
DescriptionТекст примечания агрегата

Раздел: Карты-метки

Получить список карт-меток определенного клиента

POST /api/v3/Rfids/find

Запрос:

{
  "parentId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
}

Ответ:

[
  {
    "name": "string",
    "number": 0,
    "period": 0,
    "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "parentId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  }
]

ПараметрОписание
parentIdID клиента
nameНазвание карты-метки
numberНомер
periodПериод запросов в секундах (работает только для агрегатов)
idID карты-метки

Получить данные карты-метки

GET /api/v3/Rfids/{rfidGuid}

Передаем параметр rfidGuid - идентификатор карты-метки

Ответ:

[
  {
    "name": "string",
    "number": 0,
    "period": 0,
    "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "parentId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  }
]

ПараметрОписание
nameНазвание карты-метки
numberНомер
periodПериод запросов в секундах (работает только для агрегатов)
idID карты-метки
parentIdID клиента

Добавить карту-метку

POST /api/v3/Rfids

Запрос:

{
  "name": "string",
  "number": 0,
  "period": 0,
  "parentId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
}

Ответ:

{
  "name": "string",
  "number": 0,
  "period": 0,
  "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "parentId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
}

ПараметрОписание
nameНазвание карты-метки
numberНомер
periodПериод запросов в секундах (работает только для агрегатов)
idID карты-метки
parentIdID клиента

Редактировать карту-метку

PUT /api/v3/Rfids

Запрос:

{
  "name": "string",
  "number": 0,
  "period": 0,
  "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "parentId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
}

Ответ:

{
  "name": "string",
  "number": 0,
  "period": 0,
  "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "parentId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
}

ПараметрОписание
nameНазвание карты-метки
numberНомер
periodПериод запросов в секундах (работает только для агрегатов)
idID карты-метки
parentIdID клиента

Удалить карту-метку

DELETE /api/v3/Rfids/{rfidGuid}

Передаем параметр rfidGuid - идентификатор карты-метки

Ответ:

Success

Раздел: Биллинг

Узнать баланс клиента

GET /api/v3/Billing/client/balance/{clientId}

Параметр запроса: clientId - идентификатор клиента.

Ответ:

{
  "ClientId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "Balance": 0
}

ПараметрОписание
ClientIdИдентификатор клиента
BalanceЗначение баланса

Узнать ограничения клиента

GET /api/v3/Billing/client/constraint/{clientId}

Параметр запроса: clientId - идентификатор клиента.

Ответ:

{
  "ClientId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "CalculationType": 0,
  "PermissibleBalance": 0,
  "DefermentDays": 0,
  "SendUiNotifications": true,
  "SendEmailNotifications": true,
  "IsPrivate": true,
}

ПараметрОписание
ClientIdИдентификатор клиента
CalculationTypeОпределяет тип расчёта, 0 - Деньги, 1 - Дни
PermissibleBalanceДопустимый баланс
DefermentDaysОтсрочка, количество дней.
SendUiNotificationsОповещение в web-интерфейсе, true - включено, false - выключено
SendEmailNotificationsОповещение на почту, true - включено, false - выключено
IsPrivateПризнак, определяющий, являются ли параметры ограничений частными т.е. персональными для клиента, либо определяются тарифным планом

Узнать состояние тарифного плана клиента

GET /api/v3/Billing/client/plan/{clientId}

Параметры запроса: 

clientId - идентификатор клиента.

planId - идентификатор тарифного плана.

Ответ:

{
  "ClientId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "Plan": { // Описание тарифного плана
    "Id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "OwnerId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "Name": "string",
    "IsArchived": true,
    "Constraint": {
      "CalculationType": 0,
      "PermissibleBalance": 0,
      "DefermentDays": 0
    },
    "Features": [ // Описание шаблона услуг тарифного плана
      {
        "Feature": "string",
        "IsFactual": true,
        "Limit": 0,
        "Price": 0,
        "PeriodValue": 0,
        "PeriodType": 0
      }
    ]
  },
  "DebitDate": "2023-10-18T12:46:24.213Z",
  "Features": [ // Описание услуг тарифного плана как есть
    {
      "Feature": "string",
      "IsEnabled": true,
      "IsPrivate": true,
      "IsFactual": true,
      "Limit": 0,
      "Price": 0,
      "DebitDate": "2023-10-18T12:46:24.213Z",
      "PeriodValue": 0,
      "PeriodType": 0
    }
  ]
}

ПараметрОписание
ClientIdИдентификатор клиента
IdИдентификатор тарифного плана
OwnerIdИдентификатор клиента-владельца
NameНаименование тарифного плана
IsArchivedПризнак, определяющий архивный тарифный план
CalculationTypeОпределяет тип расчёта, 0 - Деньги, 1 - Дни
PermissibleBalanceДопустимый баланс
DefermentDaysОтсрочка, количество дней
FeatureКод услуги
IsEnabledПризнак, определяющий активирована ли услуга
IsPrivateПризнак, определяющий, являются ли параметры по услуге тарифа частными т.е. персональными для клиента, либо определяются тарифным планом.
IsFactualПризнак, определяющий расчёт по факту
LimitЛимит использования услуги. Значение -1 подразумевает безлимитное использование.
PriceЦена за единицу.
DebitDateСледующий момент времени списания с баланса за услугу.
PeriodValueЗначение периода.
PeriodTypeОпределяет тип периода действия услуги в тарифном плане, 0 - Дни, 1 - Месяцы

Получить тарифные планы принадлежащие клиенту

GET /api/v3/Billing/client/constraint/getowned/{clientId}

Параметр запроса: clientId - идентификатор клиента.

Ответ:

[
  {
    "Id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "OwnerId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "Name": "string",
    "IsArchived": true,
    "Constraint": {
      "CalculationType": 0,
      "PermissibleBalance": 0,
      "DefermentDays": 0
    },
    "Features": [
      {
        "Feature": "string",
        "IsFactual": true,
        "Limit": 0,
        "Price": 0,
        "PeriodValue": 0,
        "PeriodType": 0
      }
    ]
  }
]

ПараметрОписание
ClientIdИдентификатор клиента
IdИдентификатор тарифного плана
OwnerIdИдентификатор клиента-владельца
NameНаименование тарифного плана
IsArchivedПризнак, определяющий архивный тарифный план
CalculationTypeОпределяет тип расчёта, 0 - Деньги, 1 - Дни
PermissibleBalanceДопустимый баланс
DefermentDaysОтсрочка, количество дней
FeatureКод услуги
IsFactualПризнак, определяющий расчёт по факту
LimitЛимит использования услуги. Значение -1 подразумевает безлимитное использование.
PriceЦена за единицу.
PeriodValueЗначение периода.
PeriodTypeОпределяет тип периода действия услуги в тарифном плане, 0 - Дни, 1 - Месяцы

Получить список доступных тарифных планов

GET /api/v3/Billing/client/constraint/getowned/{clientId}

Параметр запроса: clientId - идентификатор клиента.

Ответ:

[
  {
    "Id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "OwnerId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "Name": "string",
    "IsArchived": true,
    "Constraint": {
      "CalculationType": 0,
      "PermissibleBalance": 0,
      "DefermentDays": 0
    },
    "Features": [
      {
        "Feature": "string",
        "IsFactual": true,
        "Limit": 0,
        "Price": 0,
        "PeriodValue": 0,
        "PeriodType": 0
      }
    ]
  }
]

ПараметрОписание
ClientIdИдентификатор клиента
IdИдентификатор тарифного плана
OwnerIdИдентификатор клиента-владельца
NameНаименование тарифного плана
IsArchivedПризнак, определяющий архивный тарифный план
CalculationTypeОпределяет тип расчёта, 0 - Деньги, 1 - Дни
PermissibleBalanceДопустимый баланс
DefermentDaysОтсрочка, количество дней
FeatureКод услуги
IsFactualПризнак, определяющий расчёт по факту
LimitЛимит использования услуги. Значение -1 подразумевает безлимитное использование.
PriceЦена за единицу.
PeriodValueЗначение периода.
PeriodTypeОпределяет тип периода действия услуги в тарифном плане, 0 - Дни, 1 - Месяцы

Изменить баланс

PUT /api/v3/Billing/client/balance

Устанавливает указанное значение баланса не создавая операции пополнение/снятие.

Тело запроса:

{
  "ClientId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "Balance": 0
}

Ответ: Success

ПараметрОписание
ClientIdИдентификатор клиента
BalanceЗначение баланса

Пополнить баланс

PUT /api/v3/billing/client/balance/deposit

Создает операцию Пополнение с указанной суммой

Тело запроса:

{
  "ClientId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "Balance": 0
}

Ответ: Success

ПараметрОписание
ClientIdИдентификатор клиента
BalanceЗначение баланса

Списать с баланса

Создает операцию Списание с указанной суммой

PUT /api/v3/billing/client/balance/withdraw

Тело запроса:

{
  "ClientId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "Balance": 0
}

Ответ: Success

ПараметрОписание
ClientIdИдентификатор клиента
BalanceЗначение баланса

Изменить ограничения клиента

PUT /api/v3/Billing/client/constraint

Тело запроса:

{
  "ClientId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "CalculationType": 0,
  "PermissibleBalance": 0,
  "DefermentDays": 0,
  "SendUiNotifications": true,
  "SendEmailNotifications": true,
  "IsPrivate": true,
}

Ответ: Success

ПараметрОписание
ClientIdИдентификатор клиента
CalculationTypeОпределяет тип расчёта, 0 - Деньги, 1 - Дни
PermissibleBalanceДопустимый баланс
DefermentDays

Отсрочка, количество дней

SendUiNotificationsОповещение в web-интерфейсе, true - включено, false - выключено
SendEmailNotificationsОповещение на почту, true - включено, false - выключено
IsPrivateПризнак, определяющий, являются ли параметры ограничений частными т.е. персональными для клиента, либо определяются тарифным планом

Изменить тариф клиента

PUT /api/v3/Billing/client/plan

Тело запроса:

{
  "ClientId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "PlanId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "Features": [
    {
      "Feature": "string",
      "IsEnabled": true,
      "IsFactual": true,
      "Limit": 0,
      "Price": 0,
      "DebitDate": "2023-10-18T13:26:58.987Z",
      "PeriodValue": 0,
      "PeriodType": 0
    }
  ]
}

Ответ: Success

ПараметрОписание
ClientIdИдентификатор клиента
PlanIdИдентификатор тарифного плана
FeatureКод услуги
IsEnabledПризнак, определяющий активирована ли услуга
IsFactualПризнак, определяющий расчёт по факту
LimitЛимит использования услуги. Значение -1 подразумевает безлимитное использование.
PriceЦена за единицу.
DebitDateСледующий момент времени списания с баланса за услугу.
PeriodValueЗначение периода.
PeriodTypeОпределяет тип периода действия услуги в тарифном плане, 0 - Дни, 1 - Месяцы

Раздел: Импорт и Экспорт

Для тестирования запросов Импорта в Postman необходимо скачать его на ПК. Версия в браузере не позволяет загружать файлы в тело запроса.

Импорт объектов

POST /api/v3/vehicles/import/{agentId}

Запрос позволяет загрузить объекты в систему из файла. Импортируемый файл может быть в формате xml (расширение *.xls) или wlp. Также они могут находится в zip-архиве (один файл - один архив).

В пути указывается agentId - id клиента.

Заголовок

X-Auth: [токен авторизации]

Параметры

ПараметрОписание
withNoDataПараметр Объекты без данных. Определяет способ загрузки объекта, у которого отсутствует имя или модель объекта. true - загружать, false - пропускать.
importMethodПараметр Метода импорта датчиков. Определяет метод добавления датчиков импортируемых из файла. Значение: Replace - Замена, Merge - Слияние, Add - Добавление

В теле использовать тип form-data, тип значения file

Ключи

ПараметрОписание
dataВ значении передаем файл объекта, формат xml или wlp 
csvВ значении передаем файл датчиков, формат csv

Ответ:

{
  "vehicleId": 0,
  "name": "string",
  "errors": ["string"]
}

ПараметрОписание
vehicleIdID созданного объекта
nameИмя созданного объекта
errorsОшибки и их описание

Импорт сообщений

POST /api/v3/vehicles/import/history/{vehicleId}

Позволяет импортировать сообщения в выбранный объект. Сообщения должны иметь формат wln или json. Также они могут быть упакованы и переданы в виде в zip-архива.

В пути указывается vehicleId - id объекта.

Заголовок

X-Auth: [токен авторизации]

В теле использовать тип form-data.

Ключи:

ПараметрОписание
historyВ значении передавать файл с историей

В случае, если загружается история из файла wln можно выполнять подмену названий параметров. В ключе вы указываете название параметра из файла, в значении указываете значение на которое нужно заменить.

Ответ:

{
  "results": [
    {
      "vehicleGuid": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "vehicleId": 0,
      "errors": [
        "string"
      ],
      "firstMessageDate": "2023-11-28T09:27:58.949Z",
      "lastMessageDate": "2023-11-28T09:27:58.949Z",
      "producedCount": 0,
      "msgCount": 0
    }
  ]
}

ПараметрОписание
resultsРезультаты импорта в разрезе ТС
vehicleGuidGuid ТС
vehicleIdID ТС
errorsСписок ошибок импорта истории (если пустой - нет ошибок)
firstMessageDateДата первого импортированного сообщения (UTC)
lastMessageDateДата последнего импортированного сообщения (UTC)
producedCountКол-во успешно отправленных в шину данных сообщений
msgCountКол-во обработанных сообщений всего

Статус импорта сообщений

GET /api/v3/vehicles/import/history/status

Запрос статуса импорта истории. Может потребоваться в случае импорта истории за большой период.

Ответ:

{
  "activity": true,
  "progress": 0,
  "message": "string"
}

ПараметрОписание
activityАктивен ли экспорт/импорт истории сейчас, true - да, false - нет
progressGuid ТС

Экспорт объектов

POST /api/v3/vehicles/export

Запрос позволяет экспортировать файлы с настройками объектов. В запросе передается массив id объектов.

Тело запроса:

[
  id
]

Ответ: Success 200, получаете файлы с настройками.

Экспорт сообщений

POST /api/v3/vehicles/export/history

Метод возвращает список сообщений терминала объекта за выбранный период.

Тело запроса:

{
  "vehicleId": 0,
  "asArchive": true,
  "from": "2023-09-27T12:17:45.973Z",
  "to": "2023-09-27T12:17:45.973Z"
}

Ответ:

Получаете файл. Сообщение: Code 200/Success

ПараметрОписание
vehicleIdID объекта
asArchivetrue - Архивировать файл, False - не архивировать
fromДата и время начала запроса
toДата и время окончания запроса

Статус экспорта сообщений

GET /api/v3/vehicles/export/history/status

Метод возвращает список сообщений терминала объекта за выбранный период.

Ответ:

{
  "activity": true,
  "progress": 0,
  "message": "string"
}

ПараметрОписание
activityСтатус экспорта, где true - экспорт в процессе выполнения, false - в данный момент ничего не экспортируется.
progressПрогресс экспорта, от 0 до 100%
messageТекст описывающий статус

Раздел: Экодрайвинг

Запрос рейтинга качества вождения

POST /api/v3/EcoDriving/rating

Позволяет получить данные рейтинга нарушений выбранных объектов за указанный период времени. Данные, выдаваемые этим запросом аналогичны тем, что вы можете увидеть в окне Качество вождения в мониторинге. В массиве items передается список объектов из рейтинга качества вождения, в trips передается информация по отдельным рейсам объекта.

Тело запроса:

{
  "vehicleIds": [vehicleId], //Массив ID объектов
  "from": "2023-11-22T09:29:48.051Z", // Дата начала запроса
  "to": "2023-11-22T09:29:48.051Z" // Дата окончания запроса
}

Ответ: 

{
  "items": [  // Список в разрезе ТС
    {
      "from": "2023-11-22T09:29:48.052Z", // Дата начала периода
      "to": "2023-11-22T09:29:48.052Z", // Дата окончания периода
      "vehicleId": 0, // ID ТС
      "vehicleName": "string", // Название ТС
      "vehicleModel": "string", // Модель ТС
      "penalty": 0, // Кол-во рассчитанных штрафных баллов в разрезе ТС
      "score": 0, // Рассчитанная оценка вождения в разрезе ТС
      "totalViolations": 0, // Нарушений всего
      "violationsByType": { // Информация о нарушениях по типу
        "overspeedingViolations": 0, // Нарушений превышения скорости
        "accelerationViolations": 0, // Нарушений ускорения
        "brakingViolations": 0, // Нарушений торможения
        "turningViolations": 0, // Нарушений опасного поворота
        "dangerousDrivingViolations": 0, // Нарушений резкого вождения
        "sensorViolations": 0 // Нарушений по датчику
      },

 

      "moveTime": 0, // Продолжительность движения, сек
      "mileage": 0, // Пробег, м
      "tripsCount": 0, // Кол-во рейсов
      "trips": [  // Информация по рейсу
        {
          "penalty": 0, // Кол-во рассчитанных штрафных баллов за рейс
          "score": 0, // Рассчитанная оценка вождения за рейс
          "violationsCount": 0, // Всего нарушений
          "violationsByType": { // Информация о нарушениях по типу
            "overspeedingViolations": 0, // Нарушений превышения скорости
            "accelerationViolations": 0, // Нарушений ускорения
            "brakingViolations": 0, // Нарушений торможения
            "turningViolations": 0, // Нарушений опасного поворота
            "dangerousDrivingViolations": 0, // Нарушений резкого вождения
            "sensorViolations": 0 // Нарушений по датчику
          },

         "startDate": "2024-11-18T13:23:38.516Z",  // Дата начала поездки
          "endDate": "2024-11-18T13:23:38.516Z", // Дата окончания поездки
          "moveTime": 0, // Продолжительность движения, сек
          "mileage": 0, // Пробег, м
          "motohours": 0, // Моточасы, секунды
          "maxSpeed": 0, // Максимальная скорость за рейс
          "startAddress": "string", // Адрес начала рейса
          "endAddress": "string", // Адрес конца рейса
          "drivers": [  // Список водителей
            {
              "driverGuid": "3fa85f64-5717-4562-b3fc-2c963f66afa6", //GUID водителя
              "driverName": "string", //ФИО водителя
              "driverRfid": "3fa85f64-5717-4562-b3fc-2c963f66afa6" //GUID радиометки
            }
          ]
        }
      ]
    }
  ]
}

Раздел: Топливные карты

Запрос транзакций по топливным картам

Транзакции по топливным картам можно получить при наличии права «Транзакции ТК». Метод позволяет получить транзакции по нескольким топливным картам.

POST /api/v3/fuelcards/transactions

Метод запроса: POST

URL запроса: https://hosting.glonasssoft.ru/api/v3/fuelcards/transactions

В заголовках запроса: X-Auth: Токен авторизации

Параметры в теле запроса (JSON):

{
  "startDate": "2024-04-11T10:32:02.395Z", // Начало периода
  "endDate": "2024-04-11T10:32:02.395Z", // Конец периода
  "ids": [ 
    "3fa85f64-5717-4562-b3fc-2c963f66afa6" // Идентификаторы топливных карт
  ],
  "timezone": 0 // Часовой пояс
}

Ответ:
  {
    "date": "2024-04-11T10:41:02.265Z", // Дата и время транзакции
    "driver": "string", // Водители, привязанные к ТК
    "object": "string", // Наименование ТС
    "amount": 0, // Количество топлива
    "amountDut": 0, // Количество по ДУТ
    "amountDiff": 0, // Разница, л
    "amountDiffPerc": 0, // Разница, %
    "summa": 0, // Стоимость, руб
    "serviceName": "string", // Тип топлива
    "price": 0, // Цена за литр, руб
    "cardName": "string", // Наименование ТК
    "cardNum": "string", // Номер ТК
    "operator": "string", // Оператор ТК
    "address": "string" // Адрес АЗС
  }

Раздел: Методы публичного API для ретрансляторов

Получение полных данных о ретрансляторе

GET  /api/v3/retranslations/{id}

id - Идентификатор ретранслятора 

Пример ответа:

{  
"description": "",  // Поле описания ретранслятора
"subscriberId": "",  // Идентификатор подписчика (клиента, чьи объекты будут ретранслироваться)
"protocolType": 0,  // Тип протокола ретрансляции
"isEnabled": true,  // Признак включения ретранслятора, Включен, true - включен, false - отключен
"address": "string",  // Адрес и порт принимающего сервера
"objects": [    // Объекты для ретрансляции
{      
"id": "",  // Идентификатор объекта ретрансляции
"name": "",   // Наименование объекта ретрансляции
"imei": "",     // IMEI объекта  ретрансляции
"isEnabled": true    // Признак включения объекта ретрансляции: true - включен, false - отключен
}
  ],  
"id": "",  // Идентификатор ретранслятора   
"parentId": "",  // Идентификатор родителя (вышестоящего клиента)
"deleted": "" // Признак удаления ретранслятора: true - включен, false - отключен
}

Удаление данных ретранслятора

DELETE /api/v3/retranslations/{id}

id - Идентификатор ретранслятора 

Создание ретранслятора

POST  /api/v3/retranslations/{id}

Запрос:

{  
"description": "",  // Поле описания ретранслятора
"subscriberId": "",  // Идентификатор подписчика
"protocolType": 0,  // Тип протокола ретрансляции
"address": "",  // Адрес и порт принимающего сервера
"isEnabled": "",  // Признак включения ретранслятора, true - включен, false - отключен
"objects": [    //Объекты для ретрансляции
{      
"id": "",  // Идентификатор ретранслятора     
"imei": "",     // IMEI объекта ретрансляции
"isEnabled":  ""  // Признак включения объекта  ретрансляции: true - включен, false - отключен
}
  ]
}

Ответ:

{  
"description": "",  // Поле описания ретранслятора
"subscriberId": "",  // Идентификатор подписчика (клиента, чьи объекты будут ретранслироваться)
"protocolType": 0,  // Тип протокола ретрансляции
"isEnabled": true,  // Признак включения ретранслятора: true - включен, false - отключен
"address": "string",  // Адрес и порт принимающего сервера
"objects": [     // Объекты для ретрансляции
{      
"id": "",    // Идентификатор объекта ретрансляции     
"name": "string",  // Наименование объекта ретрансляции    
"imei": "",      // IMEI объекта ретрансляции
"isEnabled": true    // Признак включения объекта ретрансляции: true - включен, false - отключен  
}
  ],
"id": "",  // Идентификатор ретранслятора   
"parentId": "",  // Идентификатор родителя (вышестоящего клиента)
"deleted": true // Признак удаления ретранслятора: true - удален, false - не удален
}

Редактирование ретранслятора

PUT /api/v3/retranslations

Пример запроса:

{  
"id": "",  // Идентификатор ретранслятора   
"description": "string",  // Поле описания ретранслятора
"subscriberId": "",  // Идентификатор подписчика
"protocolType": 0,  // Тип протокола ретрансляции
"isEnabled": true,  // Признак включения ретранслятора: true - включен, false - отключен
"address": "string",   // Адрес и порт принимающего сервера
"objects":  // Объекты для ретрансляции
[    
{      
"id": "",  // Идентификатор объекта ретрансляции         
"imei": "",       // IMEI объекта  ретрансляции
"isEnabled": true    // Признак включения объекта ретрансляции: true - включен, false - отключен
}
  ]
}

Пример ответа:

{  
"description": "",  // Поле описания ретранслятора
"subscriberId": "",  // Идентификатор подписчика (клиента, чьи объекты будут ретранслироваться)
"protocolType": 0,  // Тип протокола ретрансляции
"isEnabled": true,  // Признак включения ретранслятора: true - включен, false - отключен
"address": "string",  // Адрес и порт принимающего сервера
"objects": [     // Объекты для ретрансляции
{      
"id": "",    // Идентификатор объекта ретрансляции     
"name": "string",  // Наименование объекта ретрансляции    
"imei": "",      // IMEI объекта ретрансляции
"isEnabled": true    // Признак включения объекта ретрансляции: true - включен, false - отключен  
}
  ],
"id": "",  // Идентификатор ретранслятора   
"parentId": "",  // Идентификатор родителя (вышестоящего клиента)
"deleted": true // Признак удаления ретранслятора: true - удален, false - не удален
}

Получение списка ретранслятора клиента

POST /api/v3/retranslations/find

Пример запроса:

{  
"id": "",  // Идентификатор ретранслятора   
"search": "string",  // Строка поиска. Поиск производится по имени подписчика, описанию, типу протокола и адресу
"parentId": "" // Идентификатор родительского агента, для которого надо получить данные (обязательный параметр).
}

Ответ:

[   
{    
"description": "",    // Поле описания ретранслятора
"subscriberId": "",    // Идентификатор подписчика (клиента, чьи объекты будут ретранслироваться)
"protocolType": 0,     // Тип протокола ретрансляции
"isEnabled": true,    // Признак включения ретранслятора: true - включен, false - отключен
"address": "string",    // Адрес и порт принимающего сервера
"id": "",    // Идентификатор ретранслятора   
"parentId": "",    // Идентификатор родителя (вышестоящего клиента)
"deleted": true   // Признак удаления ретранслятора: true - удален, false - не удален
}
]

Раздел: Отчеты

API для отчета по выгрузке комбайнов

POST /api/v3/Reports/harvesterUnloading

Пример запроса:

{
  "byTime": 0, // Объединение событий по времени
  "byDist": 0,  // Объединение событий по расстоянию
  "filterByTime": 0,   // Фильтрация событий по времени нахождения
  "filterByHalfPerimeter": true,  // Фильтрация событий по пробегу половины периметра
  "showNearestObjects": true,  //Показывать объекты рядом?
  "vehicleIds": [   // Список id объектов для анализа
    0
  ],
  "from": "", // Дата и время начало запроса
  "to": "",  // Дата и время окончания запроса
  "timezone": 0  // Временная зона. Если не указана, то по умолчанию UTC+3
}

Пример ответа:


  {
    "harvesterName": "",  //Комбайн, номер
    "harvesterId": 0, //Комбайн, id
"harvesterModel": "", // Модель комбайна
"hopperCapacity": 0, // Объем бункера м3
    "hopperDischargeSpeed": 0,  // Скорость выгрузки из бункера, л/сек
    "events": [  //Список событий в разрезе комбайна
      {
        "driverId": "",  //Идентификатор водителя
        "driverName": "", //Водитель комбайна, ФИО
        "RFID": "", // идентификатор карты-метки
        "rfidName": "", //Водитель комбайна, имя метки
        "vehicleId": 0, //идентификатор объекта
        "vehicleName": "string", // Имя объекта
        "modelName": "string", //  Имя модели объекта
        "nearestVehicles": [  //Объекты рядом
          {
            "vehicleId": 0, //идентификатор объекта
            "vehicleName": "string" // Имя объекта
          }
        ],
        "fields": [  //Поля, где происходила выгрузка
          {
            "id": 0, // идентификатор пользователя 
            "name": "string" // имя пользователя 
          }
        ],
        "event": "string", //Событие
        "start": "2024-07-19T06:41:57.821Z", // Начало периода
        "end": "2024-07-19T06:41:57.821Z", // Окончание периода
        "durationSeconds": 0,  //Продолжительность события, в секундах
        "cultureName": "string",  // название культуры
        "bunkerLowLevelStart": 0,  //Бункер, нижний уровень (на начало события)
        "bunkerLowLevelEnd": 0, // Бункер, нижний уровень (на конец события)
        "bunkerHighLevelStart": 0, //Бункер, верхний уровень (на начало события)
        "bunkerHighLevelEnd": 0, //Бункер, верхний уровень (на конец события)
        "reapingAggregateValueStart": 0, //Жатка (на начало события)
        "reapingAggregateValueEnd": 0, //Жатка (на конец события)
        "issued": 0, //Выдано, бункеров
        "issuedByBunkerSensors": 0, //Отдано бункеров (расчет по датчикам бункера)
        "latitude": 0,  //Широта
        "longitude": 0, // Долгота
        "litresAway": 0, //Отдано, л
        "m3Away": 0 //Отдано, м3
      }
    ]
  }
]

Раздел: Сельскохозяйственные поля 

Запрос списка полей

POST /api/v3/agroLands/find

Пример запроса:

{
  "year": 0, // Фильтр по году
  "name": "string", // Фильтр по названию
  "unitId": "3fa85f64-5717-4562-b3fc-2c963f66afa6" // Фильтр по подразделению
}

 

Пример ответа:

[
  {
    "sqPlan": 0, // Определяет площадь поля, Га.
    "year": 0, // Год поля
    "startDate": "2024-12-20T12:27:07.523Z", // Начало года урожая
    "endDate": "2024-12-20T12:27:07.523Z", // Конец года урожая
    "status": 0, // Статус с/х поля 0 - нет, 1 - открыто, 2 - закрыто
    "cultureId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", // Идентификатор культуры
    "cultureTechnologyId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", // Идентификатор технологии
    "counts": { // Счётчики с/х поля 
      "fieldOperations": 0, // Количество операций на поле
      "actualFieldOperations": 0, // Кол-во актуальных операций на поле
      "facts": 0 // Счётчик факта
    },
    "planState": 0, // Статус годового планирования участка 0 - Нет, 1 - Запланированная, 2 - Запланированная ошибка, 3 - Ошибка закрытия, 4 - Закрыто, 5 - Отменено, 6 - Закрыто частично, 7 - Закрыто частично с ошибкой
    "actualPlanState": 0, // Статус годового планирования участка 0 - Нет, 1 - Запланированная, 2 - Запланированная ошибка, 3 - Ошибка закрытия, 4 - Закрыто, 5 - Отменено, 6 - Закрыто частично, 7 - Закрыто частично с ошибкой
    "factState": 0, // Статус годового планирования участка 0 - Нет, 1 - Запланированная, 2 - Запланированная ошибка, 3 - Ошибка закрытия, 4 - Закрыто, 5 - Отменено, 6 - Закрыто частично, 7 - Закрыто частично с ошибкой
    "taskState": 0, // Статус годового планирования участка 0 - Нет, 1 - Запланированная, 2 - Запланированная ошибка, 3 - Ошибка закрытия, 4 - Закрыто, 5 - Отменено, 6 - Закрыто частично, 7 - Закрыто частично с ошибкой
    "fieldId": 0, // Ссылка на группирующее с/х поле
    "sourceId": 0, // Ссылка на участок прошлого года
    "planComment": "string", // Комментарий к полю
    "productivity": 0, // Урожайность.
    "id": 0, // Идентификатор объекта геозоны
    "name": "string", // Название объекта геозоны
    "type": 0, // Тип объекта геозоны
    "unitId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", // Подразделение
    "fname": "string", // Имя файла
    "parentId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", // Идентификатор агента
    "beginCalc": "2024-12-20T12:27:07.523Z", // Дата начала расчетов для геозоны
    "endCalc": "2024-12-20T12:27:07.523Z", // Дата окончания расчетов для геозоны
    "description": "string", // Описание объекта геозоны
    "area": 0, // Площадь, м2
    "perimetr": 0, // Периметр, м
    "createDate": "2024-12-20T12:27:07.523Z" // Дата создания в бд
  }
]

Создание нового поля 

POST /api/v3/agroLands

Пример запроса:

{
  "extId": "string", 
  "shape": "string", // Форма поля
  "shapeFormat": "string", // Формат, в котором представлена форма поля
  "display": "string", // Настройки отображения
  "year": 0, // Год поля
  "name": "string", // Наименование
  "unitId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", // Подразделение
  "startDate": "2024-12-20T08:19:59.635Z", // Начало года урожая
  "endDate": "2024-12-20T08:19:59.635Z", // Конец года урожая
  "planComment": "string", // Комментарий к полю
  "cropRotations": [ // Данные по севообороту
    {
      "landId": 0, // ID поля
      "landName": "string", // Название поля
      "year": 0, // Год урожая
      "cultureId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", // ID культуры
      "cultureName": "string", // Название культуры
      "productivity": 0, // Урожайность
      "area": 0, // Площадь поля, Га
      "total": 0, // Валовый сбор
      "productivityFact": 0, // Фактическая урожайность
      "areaFact": 0, // Фактическая площадь поля, Га.
      "totalFact": 0, // Фактический валовый сбор
      "start": "2024-12-20T08:19:59.635Z", // Дата начала работ
      "sowing": "2024-12-20T08:19:59.635Z", // Дата сева
      "harvesting": "2024-12-20T08:19:59.635Z", // Дата уборки урожая
      "isyearplan": true, // Годовой план 
      "comment": "string" // Комментарий
    }
  ]
}

 

Пример ответа:

{
  "cultureId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",  // Идентификатор культуры
  "cultureTechnologyId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", // Идентификатор технологии
  "fieldId": 0, // Ссылка на группирующее с/х поле
  "sourceId": 0, // Ссылка на участок прошлого года
  "cropRotations": [ // Данные по севообороту
    {
      "landId": 0, // ID поля
      "landName": "string", // Название поля
      "year": 0, // Год урожая 
      "cultureId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", // ID культуры
      "cultureName": "string", // Название культуры
      "productivity": 0, // Урожайность
      "area": 0, // Площадь поля, Га.
      "total": 0, // Валовый сбор
      "productivityFact": 0, // Фактическая урожайность
      "areaFact": 0, // Фактическая площадь поля, Га.
      "totalFact": 0, // Фактический валовый сбор
      "start": "2024-12-20T08:19:59.743Z", // Дата начала работ
      "sowing": "2024-12-20T08:19:59.743Z", // Дата сева
      "harvesting": "2024-12-20T08:19:59.743Z", // Дата уборки урожая
      "isyearplan": true, // годовой план 
      "comment": "string" // Комментарий
    }
  ],
  "cropVegetation": [ // История вегетации поля
    {
      "values": [  // Данные вегетации и состояния посева
        {
          "date": "2024-12-20T08:19:59.743Z", // Дата
          "ndvi": 0 // Индекс вегетации
        }
      ],
      "resources": [ // Данные о снимках для каждого значения NDVI
        {
          "date": "2024-12-20T08:19:59.743Z", // Дата
          "type": "string", // Тип
          "pictureid": "string" // Идентификатор ресурса
        }
      ],
      "states": [ // Ключевые даты развития поля
        {
          "date": "2024-12-20T08:19:59.743Z", // Дата
          "state": 0 // Статус  0 - Всходы, 1 - Вершина, 2 - Сбор урожая
        }
      ]
    }
  ],
  "endDate": "2024-12-20T08:19:59.743Z", // Дата закрытия года урожая
  "counts": {
    "fieldOperations": 0, // Количество операций на поле
    "actualFieldOperations": 0, // Кол-во актуальных операций на поле
    "facts": 0 // Счётчик факта
  },
  "planComment": "string", // Комментарий к полю

  "productivity": 0, // Урожайность.
  "sqPlan": 0, // Определяет площадь поля, Га.
  "startDate": "2024-12-20T08:19:59.743Z", // Дата открытия года урожая
  "year": 0, // Год поля
  "planState": 0, // Статус годового планирования участка 0 - Нет, 1 - Запланированная, 2 - Запланированная ошибка, 3 - Ошибка закрытия, 4 - Закрыто, 5 - Отменено, 6 - Закрыто частично, 7 - Закрыто Частично С ошибкой
  "actualPlanState": 0, // Актуальный статус годового планирования участка 0 - Нет, 1 - Запланированная, 2 - Запланированная ошибка, 3 - Ошибка закрытия, 4 - Закрыто, 5 - Отменено, 6 - Закрыто частично, 7 - Закрыто Частично С ошибкой
  "factState": 0, // Фактический статус годового планирования участка 0 - Нет, 1 - Запланированная, 2 - Запланированная ошибка, 3 - Ошибка закрытия, 4 - Закрыто, 5 - Отменено, 6 - Закрыто частично, 7 - Закрыто Частично С ошибкой
  "taskState": 0, // Статус задачи годового планирования участка 0 - Нет, 1 - Запланированная, 2 - Запланированная ошибка, 3 - Ошибка закрытия, 4 - Закрыто, 5 - Отменено, 6 - Закрыто частично, 7 - Закрыто Частично С ошибкой
  "status": 0, // Статус с/х поля 0 - Нет, 1 - Открыто, 2 - Закрыто
  "id": 0, // Идентификатор объекта геозоны
  "name": "string", // Название объекта геозоны
  "type": 0, // Тип объекта геозоны
  "unitId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", // Подразделение
  "fname": "string", // Имя файла
  "parentId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", // Идентификатор агента
  "beginCalc": "2024-12-20T08:19:59.743Z", // Дата начала расчетов для геозоны
  "endCalc": "2024-12-20T08:19:59.743Z", // Дата окончания расчетов для геозоны
  "description": "string", // Описание объекта геозоны
  "area": 0, // Площадь, м2
  "perimetr": 0, // Периметр, м
  "createDate": "2024-12-20T08:19:59.743Z" // Дата создания в бд
}

 

Получение поля по id

GET /api/v3/agroLands/{id}

Пример запроса:
id  // Идентификатор поля

Пример ответа:

{
  "cultureId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",  // Идентификатор культуры
  "cultureTechnologyId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", // Идентификатор технологии
  "fieldId": 0, // Ссылка на группирующее с/х поле
  "sourceId": 0, // Ссылка на участок прошлого года
  "cropRotations": [ // Данные по севообороту
    {
      "landId": 0, // ID поля
      "landName": "string", // Название поля
      "year": 0, // Год урожая
      "cultureId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", // ID культуры
      "cultureName": "string", // Название культуры
      "productivity": 0, // Урожайность
      "area": 0, // Площадь поля, Га
      "total": 0, // Валовый сбор
      "productivityFact": 0, // Фактическая урожайность
      "areaFact": 0, // Фактическая площадь поля, Га.
      "totalFact": 0, // Фактический валовый сбор
      "start": "2024-12-20T07:45:52.611Z", // Дата начала работ
      "sowing": "2024-12-20T07:45:52.611Z", // Дата сева
      "harvesting": "2024-12-20T07:45:52.611Z", // Дата уборки урожая
      "isyearplan": true, // План года 
      "comment": "string" // Комментарий
    }
  ],
  "cropVegetation": [ // История вегетации поля
    {
      "values": [ // Данные вегетации и состояния посева
        {
          "date": "2024-12-20T07:45:52.611Z", // Дата
          "ndvi": 0 // Индекс вегетации
        }
      ],
      "resources": [  // Данные о снимках для каждого значения NDVI
        {
          "date": "2024-12-20T07:45:52.611Z", // Дата
          "type": "string", // Тип 
          "pictureid": "string" // Идентификатор ресурса
        }
      ],
      "states": [ // Ключевые даты развития поля
        {
          "date": "2024-12-20T07:45:52.611Z", // Дата 
          "state": 0 // Статус 0 - Посев, 1 - Всходы, 2 - Сбор урожая
        }
      ]
    }
  ],
  "endDate": "2024-12-20T07:45:52.611Z", // Дата закрытия года урожая
  "counts": {
    "fieldOperations": 0, // Количество операций на поле
    "actualFieldOperations": 0,  // Кол-во актуальных операций на поле
    "facts": 0 // Счётчик факта
  },
  "planComment": "string", // Комментарий к полю
  "productivity": 0, // Урожайность.
  "sqPlan": 0, // Определяет площадь поля, Га.

 "startDate": "2024-12-20T07:45:52.611Z", // Дата открытия года урожая
  "year": 0, // Год поля
  "planState": 0, // Статус годового планирования участка (0 - Нет, 1 - Запланированная, 2 - Запланированная ошибка, 3 - Ошибка закрытия, 4 - Закрыто, 5 - Отменено, 6 - Закрыто частично, 7 - Закрыто Частично С ошибкой) 
  "actualPlanState": 0, // Статус годового планирования участка (0 - Нет, 1 - Запланированная, 2 - Запланированная ошибка, 3 - Ошибка закрытия, 4 - Закрыто, 5 - Отменено, 6 - Закрыто частично, 7 - Закрыто Частично С ошибкой)
  "factState": 0, // Статус годового планирования участка (0 - Нет, 1 - Запланированная, 2 - Запланированная ошибка, 3 - Ошибка закрытия, 4 - Закрыто, 5 - Отменено, 6 - Закрыто частично, 7 - Закрыто Частично С ошибкой)
  "taskState": 0, // Статус годового планирования участка (0 - Нет, 1 - Запланированная, 2 - Запланированная ошибка, 3 - Ошибка закрытия, 4 - Закрыто, 5 - Отменено, 6 - Закрыто частично, 7 - Закрыто Частично С ошибкой)
  "status": 0,  // Статус с/х поля (0 - Нет, 1 - Запланированная, 2 - Запланированная ошибка, 3 - Ошибка закрытия, 4 - Закрыто, 5 - Отменено, 6 - Закрыто частично, 7 - Закрыто Частично С ошибкой)
  "id": 0, // Идентификатор объекта геозоны
  "name": "string", // Название объекта геозоны
  "type": 0, // Тип объекта геозоны 
  "unitId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", // Подразделение
  "fname": "string", // Имя файла
  "parentId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", // Идентификатор агента
  "beginCalc": "2024-12-20T07:45:52.611Z", // Дата начала расчетов для геозоны
  "endCalc": "2024-12-20T07:45:52.611Z", // Дата окончания расчетов для геозоны
  "description": "string", // Описание объекта геозоны
  "area": 0, // Площадь, м2
  "perimetr": 0, // Периметр, м
  "createDate": "2024-12-20T07:45:52.611Z" // Дата создания в бд
}

Удаление существующего поля

DELETE /api/v3/agroLands/{id}

Пример запроса:
id  // Идентификатор поля

Пример ответа:

200 // Успех

 

 

Изменение поля

PUT /api/v3/agroLands

Пример запроса:

{
  "id": 0, // Идентификатор поля
  "extId": "string", // ExtId
  "shape": "string", // Форма поля
  "shapeFormat": "string", // Формат, в котором представлена форма поля
  "display": "string", // Настройки отображения
  "year": 0, // Год поля
  "name": "string", // Наименование
  "unitId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", // Подразделение
  "startDate": "2024-12-20T10:11:59.425Z", // Начало года урожая
  "endDate": "2024-12-20T10:11:59.425Z", // Конец года урожая
  "planComment": "string", //Комментарий к полю
  "cropRotations": [  // Данные по севообороту
    {
      "landId": 0, // ID поля
      "landName": "string", // Название поля
      "year": 0, // Год урожая
      "cultureId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", // ID культуры
      "cultureName": "string", // Название культуры
      "productivity": 0, // Урожайность
      "area": 0, // Площадь поля, Га.
      "total": 0, // Валовый сбор
      "productivityFact": 0, // Фактическая урожайность
      "areaFact": 0, // Фактическая площадь поля, Га.
      "totalFact": 0, // Фактический валовый сбор
      "start": "2024-12-20T10:11:59.425Z", // Дата начала работ
      "sowing": "2024-12-20T10:11:59.425Z", // Дата сева
      "harvesting": "2024-12-20T10:11:59.425Z", // Дата уборки урожая
      "isyearplan": true, 
      "comment": "string" // Комментарий
    }
  ],
  "deleteStatistic": true // Нужно ли удалять статистику
}

 

Пример ответа:

{
  "cultureId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", // Идентификатор культуры
  "cultureTechnologyId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", // Идентификатор технологии
  "fieldId": 0, // Ссылка на группирующее с/х поле
  "sourceId": 0, // Ссылка на участок прошлого года
  "cropRotations": [ // Данные по севообороту
    {
      "landId": 0, // ID поля
      "landName": "string", // Название поля
      "year": 0, //  Год урожая
      "cultureId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", // ID культуры
      "cultureName": "string", // Название культуры
      "productivity": 0, // Урожайность
      "area": 0, // Площадь поля, Га
      "total": 0, // Валовый сбор
      "productivityFact": 0, // Фактическая урожайность
      "areaFact": 0, // Фактическая площадь поля, Га.
      "totalFact": 0, // Фактический валовый сбор
      "start": "2024-12-20T10:11:59.533Z", // Дата начала работ
      "sowing": "2024-12-20T10:11:59.533Z", // Дата сева
      "harvesting": "2024-12-20T10:11:59.533Z", // Дата уборки урожая
      "isyearplan": true, // 
      "comment": "string" // Комментарий
    }
  ],
  "cropVegetation": [ // История вегетации поля
    {
      "values": [ // Данные вегетации и состояния посева
        {
          "date": "2024-12-20T10:11:59.533Z", // Дата
          "ndvi": 0 // Индекс вегетации
        }
      ],
      "resources": [ // Данные о снимках для каждого значения NDVI
        {
          "date": "2024-12-20T10:11:59.533Z", // Дата
          "type": "string", // Тип
          "pictureid": "string" // Идентификатор ресурса
        }
      ],
      "states": [ // Ключевые даты развития поля 
        {
          "date": "2024-12-20T10:11:59.533Z", // Дата
          "state": 0 // Статус 0 - Всходы, 1 - Вершина, 2 - Сбор урожая
        }
      ]
    }
  ],
  "endDate": "2024-12-20T10:11:59.533Z", // Дата закрытия года урожая
  "counts": { 
    "fieldOperations": 0, // Количество операций на поле
    "actualFieldOperations": 0, // Кол-во актуальных операций на поле
    "facts": 0 // Счётчик факта
  },
  "planComment": "string", // Комментарий к полю
  "productivity": 0, // Урожайность.
  "sqPlan": 0, // Определяет площадь поля, Га.
  "startDate": "2024-12-20T10:11:59.533Z", // Дата открытия года урожая
  "year": 0, // Год поля
  "planState": 0, // Статус годового планирования участка 0 - Нет, 1 - Запланированная, 2 - Запланированная ошибка, 3 - Ошибка закрытия, 4 - Закрыто, 5 - Отменено, 6 - Закрыто частично, 7 - Закрыто Частично С ошибкой
  "actualPlanState": 0, // Статус годового планирования участка 0 - Нет, 1 - Запланированная, 2 - Запланированная ошибка, 3 - Ошибка закрытия, 4 - Закрыто, 5 - Отменено, 6 - Закрыто частично, 7 - Закрыто Частично С ошибкой
  "factState": 0,  // Статус годового планирования участка 0 - Нет, 1 - Запланированная, 2 - Запланированная ошибка, 3 - Ошибка закрытия, 4 - Закрыто, 5 - Отменено, 6 - Закрыто частично, 7 - Закрыто Частично С ошибкой
  "taskState": 0, // Статус годового планирования участка 0 - Нет, 1 - Запланированная, 2 - Запланированная ошибка, 3 - Ошибка закрытия, 4 - Закрыто, 5 - Отменено, 6 - Закрыто частично, 7 - Закрыто Частично С ошибкой
  "status": 0, // Статус с/х поля 0 - нет, 1 - открыто, 2 - закрыто 
  "id": 0, // Идентификатор объекта геозоны
  "name": "string", // Название объекта геозоны
  "type": 0, // Тип объекта геозоны
  "unitId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", // Подразделение
  "fname": "string", // Имя файла
  "parentId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", // Идентификатор агента
  "beginCalc": "2024-12-20T10:11:59.533Z", // Дата начала расчетов для геозоны
  "endCalc": "2024-12-20T10:11:59.533Z", // Дата окончания расчетов для геозоны
  "description": "string", // Описание объекта геозоны
  "area": 0, // Площадь, м2
  "perimetr": 0, // Периметр, м
  "createDate": "2024-12-20T10:11:59.533Z" // Дата создания в бд
}

Редактирование года урожая 

POST /api/v3/agroLands/updateOpenCloseYear

Пример запроса:

{
  "agroLandIds": [  // Идентификаторы полей для которых меняется год урожая
    0
  ],
  "newStartDate": "2024-12-20T11:43:43.921Z", // Новая дата начала урожая
  "newEndDate": "2024-12-20T11:43:43.921Z" // Новая дата закрытия урожая
}

 

Пример ответа:

{
  "cultureId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", // Идентификатор культуры
  "cultureTechnologyId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", // Идентификатор технологии
  "fieldId": 0, // Ссылка на группирующее с/х поле
  "sourceId": 0, // Ссылка на участок прошлого года
  "cropRotations": [ // Данные по севообороту
    {
      "landId": 0, // ID поля
      "landName": "string", // Название поля
      "year": 0, // Год урожая
      "cultureId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", // ID культуры
      "cultureName": "string", // Название культуры
      "productivity": 0, // Урожайность
      "area": 0, // Площадь поля, Га.
      "total": 0, // Валовый сбор
      "productivityFact": 0, // Фактическая урожайность
      "areaFact": 0, // Фактическая площадь поля, Га.
      "totalFact": 0, // Фактический валовый сбор
      "start": "2024-12-20T11:43:44.091Z", // Дата начала работ
      "sowing": "2024-12-20T11:43:44.091Z", // Дата сева
      "harvesting": "2024-12-20T11:43:44.091Z", // Дата уборки урожая
      "isyearplan": true, // 
      "comment": "string" // Комментарий
    }
  ],
  "cropVegetation": [ // История вегетации поля
    {
      "values": [ // Данные вегетации и состояния посева
        {
          "date": "2024-12-20T11:43:44.091Z", // Дата
          "ndvi": 0 // Индекс вегетации
        }
      ],
      "resources": [ // Данные о снимках для каждого значения NDVI
        {
          "date": "2024-12-20T11:43:44.091Z", // Дата
          "type": "string", // Тип
          "pictureid": "string" // Идентификатор ресурса
        }
      ],
      "states": [ // Ключевые даты развития поля
        {
          "date": "2024-12-20T11:43:44.091Z", // Дата 
          "state": 0 // Статус 0 - Всходы, 1 - Вершина, 2 - Сбор урожая
        }
      ]
    }
  ],
  "endDate": "2024-12-20T11:43:44.091Z", // Дата закрытия года урожая
  "counts": { 
    "fieldOperations": 0, // Количество операций на поле
    "actualFieldOperations": 0, // Кол-во актуальных операций на поле
    "facts": 0 // Счётчик факта
  },
  "planComment": "string", // Комментарий к полю
  "productivity": 0, // Урожайность.
  "sqPlan": 0, // Определяет площадь поля, Га.
  "startDate": "2024-12-20T11:43:44.091Z", // Дата открытия года урожая
  "year": 0, // Год поля
  "planState": 0,  // Статус годового планирования участка 0 - Нет, 1 - Запланированная, 2 - Запланированная ошибка, 3 - Ошибка закрытия, 4 - Закрыто, 5 - Отменено, 6 - Закрыто частично, 7 - Закрыто частично с ошибкой
  "actualPlanState": 0, // Статус годового планирования участка 0 - Нет, 1 - Запланированная, 2 - Запланированная ошибка, 3 - Ошибка закрытия, 4 - Закрыто, 5 - Отменено, 6 - Закрыто частично, 7 - Закрыто частично с ошибкой
  "factState": 0, // Статус годового планирования участка 0 - Нет, 1 - Запланированная, 2 - Запланированная ошибка, 3 - Ошибка закрытия, 4 - Закрыто, 5 - Отменено, 6 - Закрыто частично, 7 - Закрыто частично с ошибкой
  "taskState": 0, // Статус годового планирования участка 0 - Нет, 1 - Запланированная, 2 - Запланированная ошибка, 3 - Ошибка закрытия, 4 - Закрыто, 5 - Отменено, 6 - Закрыто частично, 7 - Закрыто частично с ошибкой
  "status": 0, // Статус с/х поля 0 - нет, 1 - открыто, 2 - закрыто
  "id": 0, // Идентификатор объекта геозоны
  "name": "string", // Название объекта геозоны
  "type": 0, // Тип объекта геозоны
  "unitId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", // Подразделение
  "fname": "string", // Имя файла
  "parentId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", // Идентификатор агента
  "beginCalc": "2024-12-20T11:43:44.091Z", // Дата начала расчетов для геозоны
  "endCalc": "2024-12-20T11:43:44.091Z", // Дата окончания расчетов для геозоны
  "description": "string", // Описание объекта геозоны
  "area": 0, // Площадь, м2
  "perimetr": 0, // ериметр, м
  "createDate": "2024-12-20T11:43:44.091Z" // Дата создания в бд
}

Раздел: Корзина

Запрос на получение списка всех объектов в корзине

GET api/v3/Vehicles/recyclebin/all

Метод возвращает полную информацию о списках всех объектов в корзине по пользователям, доступным агенту

Параметр запроса: {parentId} - идентификатор агента

В заголовках запроса: X-Auth: Токен авторизации

Ответ:


  {
    "recordTime": "",  //Время записи
    "userId": "", //Guid пользователя, добавившего объект в корзину
    "parentId": "", //Guid агента объекта, помещённого в корзину
    "objectId": 0, //ID объекта, помещённого в корзину
    "objectGuid": "", //Guid объекта, помещённого в корзину
    "objectType": 1, //Тип объекта, помещённого в корзину
    "details": { //Список деталей объекта, помещённого в корзину
      "items": [ // 
nullable: true  //Детали
        {
          "name": "string", //наименование столбца
          "value": "string" //содержание столбца
        }
      ]
    },
   "errors": [  //Список ошибок удаления/восстановления объекта
      "string"
    ]
  }
]

Запрос на удаление объектов из корзины

POST api/v3/Vehicles/recyclebin/erase

В заголовках запроса: X-Auth: Токен авторизации

Пример запроса:

[
0
]
 

Пример ответа:


{
    "recordTime": "", //Время записи
    "userId": "", //Guid пользователя, добавившего объект в корзину
    "parentId": "", //Guid агента объекта, помещённого в корзину
    "objectId": 0, //ID объекта, помещённого в корзин
    "objectGuid": "",  //Guid объекта, помещённого в корзину
    "objectType": 1, //Тип объекта, помещённого в корзину
    "details": { //Список деталей объекта, помещённого в корзину
      "items": [ //Детали
        {
          "name": "", //Имя свойства
          "value": "" //Значение свойства
        }
      ]
    },
    "errors": [  //Список ошибок удаления/восстановления объекта
      ""
    ]
  }
]

Ответ: В случае успешного выполнения запроса вернется HTTP ответ «200».

Запрос на восстановление объектов из корзины

POST api/v3/Vehicles/recyclebin/restore

В заголовках запроса: X-Auth: Токен авторизации

Параметры в теле запроса (JSON):

Восстанавливает объекты из корзины. Возвращает те объекты которые не получилось восстановить.

В заголовках запроса: X-Auth: Токен авторизации

Пример запроса:

[

  0

]

Пример ответа:

[
{
    "recordTime": "2024-07-19T07:58:19.305Z", //Время записи
    "userId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",  //Guid пользователя, добавившего объект в корзину
    "parentId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", //Guid агента объекта, помещённого в корзину
    "objectId": 0, //ID объекта, помещённого в корзину
    "objectGuid": "3fa85f64-5717-4562-b3fc-2c963f66afa6", //Guid объекта, помещённого в корзину
    "objectType": 1, //Тип объекта, помещённого в корзину
    "details": { //Список деталей объекта, помещённого в корзину
      "items": [ //Детали
        {
          "name": "string",  //Имя свойства
          "value": "string" //Значение свойства
        }
      ]
    },
    "errors": [ //Список ошибок удаления/восстановления объекта
      "string"
    ]
  }
]

По вопросам работы PUBLIC API 3.0 можно обращаться на support@glonasssoft.ru 

Tags: Public API API
Created by Андрей Калиновский on 2022/05/16 11:15
   

Меню

ГЛОНАССSoft wiki - 2024 г.