Методы API для работы с SMT-Hosting

Редактировал(а) Дмитрий Копотев 2024/08/22 18:44

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

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

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

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

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

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

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

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

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

Авторизация

POST /api/v3/auth/login

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

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

URL запроса: https://hosting.smt18.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.smt18.ru /  https://regions.smt18.ru) добавьте токен авторизации -  {AuthId}, чтобы попасть сразу в клиента (https://hosting.smt18.ru/login?authId={AUTH_ID})

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

GET /api/v3/auth/check

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

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

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

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

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

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

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

GET api/v3/agents/{id}

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

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

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

URL запроса: https://hosting.smt18.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.smt18.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.smt18.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.smt18.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.smt18.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.smt18.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.smt18.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.smt18.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.smt18.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.smt18.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.smt18.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.smt18.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.smt18.ru/api/v3/users/{id}

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

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

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

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

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

GET /api/v3/models/{Id}

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

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

URL запроса: https://hosting.smt18.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.smt18.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.smt18.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.smt18.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.smt18.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.smt18.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": "",  //идентификатор произвольного поля
"command": "", //  Текст команды
"retries": "",  // Количество попыток
"idTemplate": "" // ID шаблона команды
}

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

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.smt18.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 // Макс. значение
    }
  ],
  "customFields": [ // Произвольные поля
    {
      "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "name": "string",
      "value": "string",
      "forClient": true,
      "forTooltip": true,
      "forReport": true
    }
  ]
}

Ответ:

{
    "vehicleId": "", //ID ТС 
    "parentId": "", //Guid владельца ТС
    "name": "", //Имя объекта
    "imei": "", //IMEI
    "deviceTypeId": "", //ID типа устройства
    "modelId": "", //ID модели
    "unitId": "", //ID подразделения
    "sim1": "", //SIM1
    "sim2": "", //SIM2
    "consumptionPer100Km": "", //Расход топлива на 100 км
    "consumptionIdle": "", //Расход топлива на холостом ходу
 "counters": { //Счётчики
    "mileageEnabled": true,
    "motohoursEnabled": true,
    "mileage": "",
    "motohours": 345.0
    },
 "cmsv6Parameters": { //Параметры CmsV6
    "id": null,
    "enabled": true, //флаг включения
    "host": "", // IP-адрес или доменное имя из URL веб-сайта CMSV6
    "login": "", // имя учетной записи
    "password": "" // пароль учетной записи
    },
  "inspectionTasks": { // задания на ТО
    "id": "", // ID задачи
    "enabled": false, // Признак включения
    "name": "", // Имя задания
    "description": "", // Описание задания
    "mileageCondition": "", // Условие по пробегу
    "lastMileage": "", // Пробег (в метрах)
    "motohoursCondition": "", // Условие по моточасам
    "lastMotohours": "", // Моточасы
    "periodicCondition": "", // Условие периодичности по времени
    "kind": "", // Вид периодичности по времени 
    "maxQuantity": "" // Сколько раз выполнить задание (null - однократно)
    }
}

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

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

POST /api/v3/vehicles/find

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

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

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

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

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

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

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

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

URL запроса: https://hosting.smt18.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, опционально)
    "parentId": null, // ID клиента (Guid, опционально)
    "unitId": null, // "b33548c3-73c3-40e4-8b78-81470ae744ed", ID подразделения (Guid, опционально)
    "customFields": null // значение любого из произвольных полей ТС
}

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

Ответ:

{
    "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 // право на отображение в отчетах
            }

}

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

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

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

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

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

URL запроса: https://hosting.smt18.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.smt18.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 // Макс. значение
    }
  ],
  "customFields": [ // Произвольные поля
    {
      "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "name": "string",
      "value": "string",
      "forClient": true,
      "forTooltip": true,
      "forReport": true
    }
  ]
}

Ответ:

{     
    "vehicleId": "", // ID ТС     
    "parentId": "", // ID клиента     
    "name": "", // имя ТС     
    "imei": "", // IMEI     
    "deviceTypeId": "", //  типа устройства     
    "modelId": "", // ID модели     
    "unitId": "", // ID подразделения     
    "sim1": "", // SIM 1     
    "sim2": "", // SIM2     
    "consumptionPer100Km": "", // Расход топлива на 100 км     
    "consumptionIdle": "", // Расход топлива на холостом ходу     
        "counters": 
        {         
        "mileageEnabled": true, // флаг активности счётчика «пробег»         
        "motohoursEnabled": true, // флаг активности счётчика «моточасы»         
        "mileage": "", // пробег         
        "motohours": "", // моточасы     
        }     
        "cmsv6Parameters": //  параметры CMSv6  
        {
        "id": //  идентификатор         
        "enabled": true, // флаг включения         
        "host": "", // IP-адрес или доменное имя из URL веб-сайта CMSV6         
        "login": "", // имя учетной записи         
        "password": "", // пароль учетной записи     
        }     
        "inspectionTasks": // задания на ТО           
        {
        "id": "", // ID задания             
        "enabled": false, // Признак включения             
        "name": "", // Имя задания             
        "description": "", // Описание задания             
        "mileageCondition": "", // Условие по пробегу             
        "lastMileage": "", // Пробег (в метрах) на момент последнего ТО             
        "motohoursCondition": "", // Условие по моточасам             
        "lastMotohours": "", // Моточасы             
        "periodicCondition": "", // Условие периодичности по времени             
        "kind": "", // Вид периодичности по времени             
        "maxQuantity": "", // Сколько раз выполнить задание         
        }
}

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

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

DELETE /api/v3/vehicles/{vehicleId}

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

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

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

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

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

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

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

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

 GET /api/v3/devices/types

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

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

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

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

Ответ:

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

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

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

 GET /api/v3/sensors/types

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

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

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

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

Ответ:

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

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

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

POST /api/v3/terminalMessages/count

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

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

URL запроса: https://hosting.smt18.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.smt18.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.smt18.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.smt18.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", // Окончание 
        "mileageBegin": 0, // Пробег на начало периода
        "mileageEnd": 0, // Пробег на окончание периода
        "motohoursBegin": 0, // Моточасы на начало периода
        "motohoursEnd": 0 // Моточасы на окончание периода
      }
    ]
  }
]

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

 POST /api/v3/vehicles/fuelConsumption

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

URL запроса: https://hosting.smt18.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 // Расход топлива в движении
      }
    ]
  }
]

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

 POST /api/v3/vehicles/fuelInOut

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

URL запроса: https://hosting.smt18.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.smt18.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": "string", // Адрес события
        "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.smt18.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.smt18.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.smt18.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.smt18.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.smt18.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.smt18.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.smt18.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

Продление права с определённым идентификатором ids

PUT /api/v3/notifications/prolongation

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

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

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

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

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

DELETE /api/v3/notifications/{id}

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

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

URL запроса: https://hosting.smt18.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",
  "amount": 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],
  "from": "2023-11-22T09:29:48.051Z",
  "to": "2023-11-22T09:29:48.051Z"
}

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

Ответ: 

{
  "items": [
    {
      "from": "2023-11-22T09:29:48.052Z",
      "to": "2023-11-22T09:29:48.052Z",
      "vehicleId": 0,
      "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
          },
          "moveTime": 0,
          "mileage": 0,
          "motohours": 0,
          "maxSpeed": 0,
          "startAddress": "string",
          "endAddress": "string",
          "drivers": [
            {
              "driverGuid": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
              "driverName": "string",
              "driverRfid": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
            }
          ]
        }
      ]
    }
  ]
}

ПараметрОписание
fromДата начала запроса
toДата  окончания
vehicleIdID объекта
vehicleNameИмя объекта
vehicleModelМодель объекта
penaltyСумма штрафных баллов
scoreОценка
totalViolationsСуммарное количество нарушений
violationsByTypeСписок типов нарушений и количество нарушений для каждого типа
overspeedingViolationsПревышение скорости
accelerationViolationsУскорение
brakingViolationsТорможение
turningViolationsРезкий поворот
dangerousDrivingViolationsРезкое вождение
sensorViolationsНарушение по датчику
moveTimeВремя в движении
mileageПробег
tripsCountКоличество рейсов
motohoursМоточасы
maxSpeedМаксимальная скорость
startAddressАдрес начала рейса
endAddressАдрес окончания рейса
driversСписок водителей, которые были на объекте в течениии рейса
driverGuidGuid водителя
driverNameИмя водителя
driverRfidНомер Карты-метки

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

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

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

POST /api/v3/fuelcards/transactions

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

URL запроса: https://hosting.smt18.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": "",  //Guid родителя
"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": "string",  // Определяет описание
"subscriberId": "",  // идентификатор запроса
"protocolType": 0,   // Тип протокола
"isEnabled":  "",  // признак включения, Включен, true - включен, false - отключен
"address": "",  // Адрес события
"objects": [    //Объекты для ретрансляции
{      
"id": "",     // идентификатор пользователя    
"name": "string",     // Название уведомления
"imei": "string",    //IMEI объекта  
"isEnabled": true    // признак включения, Включен, true - включен, false - отключен  
}
  ],  
"id": "",  // идентификатор пользователя  
"parentId": "",  // Guid идентификатор родителя
"deleted": true // Признак удаления
}

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

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": "",  // Guid идентификатор родителя
"deleted": true // Признак удаления
}

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

POST /api/v3/retranslations/find

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

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

Ответ:

[   
{    
"description": "",    // Определяет описание
"subscriberId": "",    // идентификатор запроса
"protocolType": 0,     // Тип протокола
"isEnabled": true,    // признак включения, Включен, true - включен, false - отключен  
"address": "string",    // Адрес события
"id": "",    // идентификатор пользователя   
"parentId": "",    // Guid идентификатор родителя
"deleted": true   // Признак удаления
}
]

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

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
      }
    ]
  }
]

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

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

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@smt18.ru 

Теги:

Меню

© 2022 SMT-Hosting – Все права защищены (v.14.10)