Для работы с машинами из CRUD - методов доступны:
Пример GET - метода:
curl -X GET -H "Content-Type: application/json" -H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJpYXQiOjE2OTY4NDE5MjQsImV4cCI6MTY5Njg0NTUyNCwicm9sZXMiOlsiUk9MRV9VU0VSIl0sImxvZ2luIjoiZGVtbyJ9.yd_RZJEHB8lYc4a7hGeSwLIGCjN8ON-573vKkizSqBGim8zdSwRaFo8vy47f6OSMMgiBGAVBnFMugImcZ6diJ12mUcKSxbbPIw9ie7dcMifKFSr8aUQ9NOIGbwkSholc1JjbzmBsaWR5cKmVDt-f3KThlhM3VN2pt1WJRJSLiGTuDeBN9pz5iWzVSp4Ye42GuGf5PBJP6zapFzz3fpq-x5zc8VAzByHqh7n5l6vWB5hQd7Gns-bngBt6FnQ0pR284_yT-CbYCPJsMOzBJvyS3xApZitXLGgPR1qNbIe-jhLIxnqZtkYmaQfeAown-9r1PsEIBJNGE0Gitbfhx_dvbw" http://sputnic.tech/mobile_api/dev
Пример тела ответа:
[{"id":65,"name":"dafcan","group":null,"odometer_mileage": {"date_mileage": "2023-10-06 16:12:00","delta_mileage": -128,"start_mileage": 10,"factor_mileage": "0","sensormileage": 3},"odometermotohours": null,"lat":null,"lng":null,"cost":"300","commands":[],"sensors":[],"imei":866854054918944,"note":"","icon":"H9.png", “rotate_icon”:true, "number":"","type":2,"ts_type":1,"fuel_type":1,"phone":"","status":true,"speed":0,"low_speed":"#0000FF","normal_speed":"#008000","exceeded_speed":"#FFFF00","high_speed":"#FF0000","start_low_speed":0,"end_low_speed":20,"start_normal_speed":21,"end_normal_speed":60,"start_exceeded_speed":61,"end_exceeded_speed":90,"start_high_speed":91,"start_routes_speed":5,"sfspeed":10,"mndrain":9,"mnrefuel":9,"withZeroPoint":true,"withCompound":false,"mnstop":0,"average":0,"withzero":true,"rvoltage":9,"mxspeed":150,"sensor":null,"azs_calc_type":null,"azs_radius":null,"azs_lat":null,"azs_lng":null,"routes_sensor":true,"routes_ign":false,"routes_refueling":true,"routes_parking":false,"offline_period":13,"parking_time":30}]
Объект JSON - массива ответа имеет поля:
| поле | описание | значение |
| id | идентификатор машины | int |
| group | идентификатор группы | int | NULL |
| name | наименование | string |
| lat | широта для машины, устанавливается если машина в дальнейшем будет определятся как АЗС | decimal | NULL |
| lng | долгота для машины, устанавливается если машина в дальнейшем будет определятся как АЗС | decimal | NULL |
| cost | месячная стоимость | float |
| commands | массив команд, описание на странице команды | array |
| sensors | массив датчиков, описание на странице датчики | array |
| imei | IMEI | bigint |
| note | примечание | string |
| icon | название файла иконки | string |
| number | серийный номер машины | string |
| phone | телефон, привязанный к машине | int (NULL | 11 цифр) |
| *_speed | цвета скорости для маршрута | string |
| start_*_speed, end_*_speed | границы скорости маршрута для цветов | int |
| azs_lat | широта для машины, устанавливается если машина - АЗС, NULL когда azs_calc_type = card | decimal | NULL |
| azs_lng | долгота для машины, устанавливается если машина - АЗС, NULL когда azs_calc_type = card | decimal | NULL |
| azs_calc_type | тип привязки АЗС, используется для расчета алгоритмов | string ( radius | card) |
| azs_radius | радиус действия АЗС, NULL когда azs_calc_type = card | int | NULL |
| offline_period | период отключения, используется для расчета алгоритмов | int |
| parking_time | длительность парковки, используется для расчета алгоритмов | int |
| routes_* | настройки отображения событий на маршруте | bool |
| mxspeed | максимальная скорость, используется для расчета алгоритмов | int |
| start_routes_speed | начальная скорость движения, используется для расчета алгоритмов | int |
| sfspeed | начальная скорость заправки, используется для расчета алгоритмов | int |
| mndrain | минимальный слив, используется для расчета алгоритмов | int |
| mnrefuel | минимальная заправка, используется для расчета алгоритмов | int |
| mnstop | минимальная стоянка, используется для расчета алгоритмов | int |
| average | усреднение, используется для расчета алгоритмов | int |
| withCompound | объединение заправок, используется для расчета алгоритмов | bool |
| withZeroPoint | учитывание нулевых точек, используется для расчета алгоритмов | bool |
| withzero | учитывание нуля, используется для расчета алгоритмов | bool |
| status | статус объекта (онлайн - true, офлайн - false) | bool |
| ignition | статус зажигания ( 1 - зажигание включено, 0 - зажигание выключено) | int |
| mileage | пробег объекта | int |
| motohours | моточасы объекта | float |
| factor_mileage | коэффициент погрешности пробега | int |
| sensor_mileage | id датчика, который считает пробег объекта | int |
| sensor_motohours | id датчика, который считает моточасы объекта | int |
| rotate_icon | Флаг, вращать иконку по направлению движения или нет | boolean |
НЕАКТУАЛЬНО - Объекты одометров (поля odometer_*) состоят из следующих значений:
Другие значения объекта являются статистическими и актуальны лишь для сайта.
Пример PATCH - метода:
Где:
curl -X PATCH -H "Content-Type: application/json" -H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJpYXQiOjE2OTY4NDg3ODMsImV4cCI6MTY5NzE0OTM4Mywicm9sZXMiOlsiUk9MRV9VU0VSIl0sImxvZ2luIjoiZGVtbyJ9.Bp29YJTIuWLSjwUdTkrmdd_FSgTU-hxbdRUazOrJJwHEVdqQwFDiUVdJxl1JTZMTG6RkH-OpSJ35j0Ch4ODLvnOPTYwyDU_1ruRY7VUJowuslXKbheKf4SWVPiYw8bSvc8xVhFPFhwwBB8uD7NtTpd0wbRxlFFnY7cxGHlFTJu3K-zMzLYghovCKS6zDGPp9VMA92j5kwdMBX5HddyScy9oMh9M8nt4vpBFG3sFxLP8Pb0Hyh0kXGbEnnKg3i5pAN3Z0Oz5wt-kwCtMD0R2hoeOYEG7DCMWGzc_UKc_A0ktlrokewfFbP7s0cdbwAY_360u0q5tPZFdJ7yQ6Fs0gog" -d '{"name":"name"}' http://sputnic.tech/mobile_api/dev/{id}
Возможные поля для отправки:
| Поле | Описание | Тип | Значение |
| group | идентификатор группы | int | NULL | идентификатор группы |
| name | наименование | string | любое |
| lat | широта местоположения (для АЗС) | float | любое |
| lng | долгота местоположения (для АЗС) | float | любое |
| cost | месячная стоимость | float | не меньше 0 |
| imei | IMEI | bigint | любое |
| note | примечание | string | любое |
| number | серийный номер | string | любое |
| phone | привязанный телефон | string | пустая строка | null | число из 11 символов |
| mileage | пробег объекта | int | любое |
| sensor_mileage | датчик для расчетов одометра для километража | int | NULL | идентификатор датчика |
| factor_mileage | факториал одометра для километража | int | любое |
| motohours | моточасы объекта | float | любое |
| sensor_motohours | датчик для расчетов одометра для моточасов | int | NULL | идентификатор датчика |
| rotate_icon | Флаг, вращать иконку по направлению движения или нет | boolean | true/false |
| int | любое | ||
Ответ идентичен результату получения списка машин.
Также дополнительный функционал предоставляют следующие маршруты:
1) Получить сырые значения от машины: https://sputnic.tech/mobile_api/dev/{id}/rawData
Где:
curl -X GET -H "Content-Type: application/json" -H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJpYXQiOjE2OTY4NDg3ODMsImV4cCI6MTY5NzE0OTM4Mywicm9sZXMiOlsiUk9MRV9VU0VSIl0sImxvZ2luIjoiZGVtbyJ9.Bp29YJTIuWLSjwUdTkrmdd_FSgTU-hxbdRUazOrJJwHEVdqQwFDiUVdJxl1JTZMTG6RkH-OpSJ35j0Ch4ODLvnOPTYwyDU_1ruRY7VUJowuslXKbheKf4SWVPiYw8bSvc8xVhFPFhwwBB8uD7NtTpd0wbRxlFFnY7cxGHlFTJu3K-zMzLYghovCKS6zDGPp9VMA92j5kwdMBX5HddyScy9oMh9M8nt4vpBFG3sFxLP8Pb0Hyh0kXGbEnnKg3i5pAN3Z0Oz5wt-kwCtMD0R2hoeOYEG7DCMWGzc_UKc_A0ktlrokewfFbP7s0cdbwAY_360u0q5tPZFdJ7yQ6Fs0gog" http://sputnic.tech/mobile_api/dev/{IdDev}/rawData
Пример тела ответа:
{"IN0":1,"IN1":0,"IN2":0,"IN3":0,"ADC1":28.645,"OUT0":1,"OUT1":0,"OUT2":0,"OUT3":0,"hdop":0.62,"CAN64":39462.5,"CAN65":24,"CAN66":83,"CAN67":550,"CAN68":2790.65,"CAN69":129072.63,"CAN70":8,"CAN71":0,"CAN72":9104,"CAN73":11014,"CAN77":39462.952,"CAN79":0,"FUEL2":1228,"TEMP2":10,"speed":0,"height":77,"param1":131072,"param2":9,"param3":7,"param4":5,"param7":-77,"param8":28.561,"param10":21,"param12":9,"param16":62,"param17":-199,"param18":968,"param64":1030,"param65":1228,"sat_num":21}
2)Установить группы для всех машин: https://sputnic.tech/mobile_api/devAllGroup
Пример запроса:
curl -X POST -H "Content-Type: application/json" -H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJpYXQiOjE2OTY4NDg3ODMsImV4cCI6MTY5NzE0OTM4Mywicm9sZXMiOlsiUk9MRV9VU0VSIl0sImxvZ2luIjoiZGVtbyJ9.Bp29YJTIuWLSjwUdTkrmddFSgTU-hxbdRUazOrJJwHEVdqQwFDiUVdJxl1JTZMTG6RkH-OpSJ35j0Ch4ODLvnOPTYwyDU1ruRY7VUJowuslXKbheKf4SWVPiYw8bSvc8xVhFPFhwwBB8uD7NtTpd0wbRxlFFnY7cxGHlFTJu3K-zMzLYghovCKS6zDGPp9VMA92j5kwdMBX5HddyScy9oMh9M8nt4vpBFG3sFxLP8Pb0Hyh0kXGbEnnKg3i5pAN3Z0Oz5wt-kwCtMD0R2hoeOYEG7DCMWGzcUKcA0ktlrokewfFbP7s0cdbwAY360u0q5tPZFdJ7yQ6Fs0gog" -d ‘[{"id":65,"group":null},{"id":325,"group":19}]’ https://sputnic.tech/mobile_api/devAllGroup
Объект JSON - массива запроса имеет поля:
| поле | описание | тип |
| id | идентификатор машины | int |
| group | идентификатор группы, NULL - если группа не установлена | int | NULL |
Ответ идентичен результату получения списка машин.
Корзина для транспорта.
Получение всех девайсов, которые деактивированы (перемещены в корзину / отключены):
Из админ. версии:
GET
https://admin.sputnic.tech/new_api/notactivedev
Возвращает все девайсы в формате json + их датчики, в общем, такие же данные, как и раньше, только у параметр is_active = false.
GET
https://sputnic.tech/new_api/notactivedev
Возвращает все девайсы конкретного пользователя
В остальном все операции с транспортом в корзине абсолютно такие же, как и с активным транспортом. Чтобы добавить транспорт в корзину - надо в запросе на обновление транспорт указать параметр
"is_active" = false
А чтобы вытащить девайс из корзины
"is_active" = true