Version 3 (modified by tolix, 3 years ago) (diff)

--

Вывоз ТБО: API взаимодействия с планшетом

API использует сообщения в JSON формате, передаваемые по HTTP по принципу запрос-ответ. Инициатором обмена всегда выступает планшет.

Необходимым условием является наличие в сообщениях следующих HTTP заголовков:

  • X-Signature: reserved
  • Content-Type: text/x-json

HTTP адрес всех веб-сервисов (URL), используемых в данном компоненте, формируется из базовой части http://<server_name>/components/communa/ и имени конкретного сервиса.

Все параметры, содержащие время, используют часовой пояс оператора-владельца используемых в запросе объектов (спецавтомобилей, контейнеров и т.д.), т.е. местное время.

Запрос списка водителей/экспедиторов для аутентификации

Endpoint: http://<server_name>/components/communa/get_personnel

Запрос:

{
    "device_id":"a40d38a959f1ca65"
}

Ответ,

{"personnel": [{"personnel_number": 444, "first_name": "Иван", "last_name": "mts", "middle_name": "", "id": 1012651}, {"personnel_number":
777, "first_name": "Василий", "last_name": "mts1", "middle_name": "", "id": 1012652}], "success": true}

Запрос списка маршрутов полный (с подробной информацией о платформах)

Endpoint: http://<server_name>/components/communa/get_routes

Запрос:

{
    "device_id":"49aa570dc04344a6"
}

Ответ:

{"routes": [{"platforms": [{"estimated_fill": 1.0, "volume":1.100, "address": "АТБ-Містечко", "lat": 50.2107736547029, "lng": 30.3174322843552, "id": 1022549, "quantity": 1}, {"estimated_fill": 1.0,
"volume": 1.100, "address": "пр.Лесі Українки, 15 ", "lat": 50.1974241245373, "lng": 30.2944350242615, "id": 1022542, "quantity": 1}, {"est
imated_fill": 1.0, "volume": 1.100, "address": "Столичка", "lat": 50.216073975587, "lng": 30.3178024291992, "id": 1022543, "quantity": 3},
{"estimated_fill": 1.0, "volume": 1.100, "address": "Солнечная", "lat": 50.1883300230983, "lng": 30.2941560745239, "id": 1022544, "quantity
": 1}, {"estimated_fill": 1.0, "volume": 1.100, "address": "вул.Володимирська,13", "lat": 50.1747131083508, "lng": 30.3193259239197, "id":
1022545, "quantity": 1}, {"estimated_fill": 1.0, "volume": 1.100, "address": "вул.Володимирька, 28 (Корунд)", "lat": 50.1733834992561, "lng
": 30.3227108716965, "id": 1022546, "quantity": 1}, {"estimated_fill": 1.0, "volume": 1.100, "address": "Фуршет", "lat": 50.1795055782639,
"lng": 30.3133499622345, "id": 1022547, "quantity": 1}, {"estimated_fill": 1.0, "volume": 1.100, "address": "вул.Набережна", "lat": 50.1800
174337311, "lng": 30.3084254264832, "id": 1022548, "quantity": 1}, {"estimated_fill": 1.0, "volume": 1.100, "address": "Військове .Містечко
", "lat": 50.2120369970609, "lng": 30.3167670965195, "id": 1022550, "quantity": 1}, {"estimated_fill": 1.0, "volume": 1.100, "address": "ву
л.Грушевського,25", "lat": 50.180299123662, "lng": 30.3108340501785, "id": 1022551, "quantity": 1}, {"estimated_fill": 1.0, "volume": 1.100
, "address": "Іванковичі", "lat": 50.2786446089967, "lng": 30.4251337051392, "id": 1022552, "quantity": 2}], "num": "01.05 - Смаколики", "i
d": 1022554, "itinerary": ""}], "success": true}

Запрос списка маршрутов без подробной информации о маршруте

Endpoint: http://<server_name>/components/communa/get_routes_v2

Запрос:

{
    "device_id":"49aa570dc04344a6"
}

Ответ:

{"routes": [{"platforms": 41, "num": "20211019T0330-AA7044
OO", "id": 1033710, "itinerary": null, "wastebins": 84}, {"platforms": 167, "num": "20211019T0400-AA7041OO", "id": 1033722, "itinerary": nu
ll, "wastebins": 248}, {"platforms": 55, "num": "20211019T0400-AA9180XE", "id": 1033723, "itinerary": null, "wastebins": 111}, {"platforms"
: 5, "num": "20211019T0400-AA9183XE", "id": 1033721, "itinerary": null, "wastebins": 10}, {"platforms": 86, "num": "20211019T0405-AA5897BP"
, "id": 1033711, "itinerary": null, "wastebins": 136}, {"platforms": 77, "num": "20211020T0400-AA7041OO", "id": 1033727, "itinerary": null,
 "wastebins": 131}, {"platforms": 1, "num": "20211020T0400-AA9183XE", "id": 1033729, "itinerary": null, "wastebins": 2}, {"platforms": 108,
 "num": "20211020T0600-AA5895BP", "id": 1033720, "itinerary": null, "wastebins": 222}, {"platforms": 38, "num": "20211020T0800-AA7044OO", "
id": 1033724, "itinerary": null, "wastebins": 78}, {"platforms": 46, "num": "20211021T0500-AA7044OO", "id": 1033728, "itinerary": null, "wa
stebins": 85}, {"platforms": 77, "num": "20211021T0800-AA5895BP", "id": 1033730, "itinerary": null, "wastebins": 125}], "success": true}

Регистрация событий

Endpoint: http://<server_name>/components/communa/register_event

Событие "Выход на маршрут"

Запрос:

{"event":"ROUTE_START","driver_id":1012651,"loader_id":1012652,"route_id":1033710,"date":1634810020725,"device_id":"1789fa18ad90ba55"}

Ответ:

{"skipped": [], "trip_id": 1033731, "success": true}

Событие "Приступили к уборке"

Запрос:

{"event":"ON_SHIFT","route_id":1033710,"device_id":"1789fa18ad90ba55"}

Ответ:

{"success": true}

Событие "Еду в гараж"

Запрос:

{"event":"GO_TO_GARAGE","route_id":1033710,"device_id":"1789fa18ad90ba55"}

Ответ:

{"success": true}

Событие "Еду на полигон"

Запрос:

{"event":"GO_TO_COLLECTION_SITE","route_id":1033722,"device_id":"1789fa18ad90ba55"}

Ответ:

{"success": true}

Событие "Техобслуживание"

Запрос:

{"event":"GO_TO_SERVICE","route_id":1033722,"device_id":"1789fa18ad90ba55"}

Ответ:

{"success": true}

Событие "Погрузка площадки"

Запрос:

{"event":"PLATFORM_LOADED","platform_id":1025030,"route_id":1032188,"count":2,"device_id":"29e199b8401de077"}

Ответ:

{"success": true}

Запрос траектории до следующего пункта маршрута

Endpoint: http://<server_name>/components/communa/get_directions

Запрос:

{"lat":49.82279963,"lng":30.06916007,"device_id":"29e199b8401de077"}

Ответ:

{"success": true, "route": [{"estimated_fill": 1.0, "volu
me": 1.100, "name": "Вул. Сквирське шосе, 216 а  3є щоденно,Вул. Сквирське шосе, 216 2є щоденно", "lat": 49.817365, "lng": 30.075344, "type
": "PLATFORM", "id": 1025208, "quantity": 2}, {"estimated_fill": 1.0, "volume": 1.100, "name": "«АТБ-маркет», Вул. Турчанінова, 4", "lat":
49.819928, "lng": 30.069391, "type": "PLATFORM", "id": 1025159, "quantity": 1}, {"estimated_fill": 1.0, "volume": 1.100, "name": "Вул. Турч
анінова, 25", "lat": 49.821286, "lng": 30.067053, "type": "PLATFORM", "id": 1025157, "quantity": 5}, {"estimated_fill": 1.0, "volume": 1.10
0, "name": "Вул. Сквирське шосе, 250", "lat": 49.818504, "lng": 30.065084, "type": "PLATFORM", "id": 1025163, "quantity": 4}, {"estimated_f
ill": 1.0, "volume": 1.100, "name": "Вул. Сквирське шосе, 264", "lat": 49.818593, "lng": 30.065134, "type": "PLATFORM", "id": 1025188, "qua
ntity": 3}, {"estimated_fill": 1.0, "volume": 1.100, "name": "Вул. Сквирське шосе, 256", "lat": 49.819249, "lng": 30.06513, "type": "PLATFO
RM", "id": 1025164, "quantity": 4}, {"estimated_fill": 1.0, "volume": 1.100, "name": "Вул. Сквирське шосе, 238 1є щоденно ", "lat": 49.8205
31, "lng": 30.064775, "type": "PLATFORM", "id": 1025189, "quantity": 1}, {"estimated_fill": 1.0, "volume": 1.100, "name": "Вул. Фурсівська,
 29 п/с", "lat": 49.821383, "lng": 30.061602, "type": "PLATFORM", "id": 1025167, "quantity": 1}, {"estimated_fill": 1.0, "volume": 1.100, "
name": "Вул. Фурсівська, 21 п/с", "lat": 49.820526, "lng": 30.061734, "type": "PLATFORM", "id": 1025166, "quantity": 1}], "destination": {"
estimated_fill": 1.0, "volume": 1.100, "name": "Вул. Сквирське шосе, 216 а  3є щоденно,Вул. Сквирське шосе, 216 2є щоденно", "lat": 49.8173
65, "lng": 30.075344, "type": "PLATFORM", "id": 1025208, "quantity": 2}, "steps": [{"maneuver": "depart", "distance_before": 0, "itinerary_
before": "", "location": [49.8227932, 30.0691627], "duration_before": 0}, {"maneuver": "turn-right", "distance_before": 109, "itinerary_bef
ore": "m_boHg{ovDe@uEOoA", "location": [49.8230599, 30.0706273], "duration_before": 16}, {"maneuver": "turn-right", "distance_before": 728,
 "itinerary_before": "caboHmdpvDtFwIT_@`FaIb@q@DIDEvA}BnAsBhBsCb@o@pBeD", "location": [49.818226, 30.0774666], "duration_before": 69}, {"ma
neuver": "arrive", "distance_before": 191, "itinerary_before": "}baoHeoqvD~@lAB@D@DDJN^j@BDBFBL@HRdBJlAFx@", "location": [49.817345, 30.075
3506], "duration_before": 75}], "itinerary": "m_boHg{ovDe@uEOoA??tFwIT_@`FaIb@q@DIDEvA}BnAsBhBsCb@o@pBeD??~@lAB@D@DDJN^j@BDBFBL@HRdBJlAFx@"
, "destination2": {"estimated_fill": 1.0, "volume": 1.100, "name": "«АТБ-маркет», Вул. Турчанінова, 4", "lat": 49.819928, "lng": 30.069391,
 "type": "PLATFORM", "id": 1025159, "quantity": 1}}

Запрос траектории до следующего пункта маршрута v2

Endpoint: http://<server_name>/components/communa/get_directions_v2

Запрос:

{"lat":49.81540762,"lng":30.08119576,"device_id":"29e199b8401de077"}

Ответ:

{"success": true, "route": [{"estimated_fill": 1.0, "v
olume": 1.100, "name": "Вул. Сквирське шосе, 216 а  3є щоденно,Вул. Сквирське шосе, 216 2є щоденно", "lat": 49.817365, "lng": 30.075344, "t
ype": "PLATFORM", "id": 1025208, "quantity": 2}, {"estimated_fill": 1.0, "volume": 1.100, "name": "«АТБ-маркет», Вул. Турчанінова, 4", "lat
": 49.819928, "lng": 30.069391, "type": "PLATFORM", "id": 1025159, "quantity": 1}, {"estimated_fill": 1.0, "volume": 1.100, "name": "Вул. Т
урчанінова, 25", "lat": 49.821286, "lng": 30.067053, "type": "PLATFORM", "id": 1025157, "quantity": 5}, {"estimated_fill": 1.0, "volume": 1
.100, "name": "Вул. Сквирське шосе, 250", "lat": 49.818504, "lng": 30.065084, "type": "PLATFORM", "id": 1025163, "quantity": 4}, {"estimate
d_fill": 1.0, "volume": 1.100, "name": "Вул. Сквирське шосе, 264", "lat": 49.818593, "lng": 30.065134, "type": "PLATFORM", "id": 1025188, "
quantity": 3}, {"estimated_fill": 1.0, "volume": 1.100, "name": "Вул. Сквирське шосе, 256", "lat": 49.819249, "lng": 30.06513, "type": "PLA
TFORM", "id": 1025164, "quantity": 4}, {"estimated_fill": 1.0, "volume": 1.100, "name": "Вул. Сквирське шосе, 238 1є щоденно ", "lat": 49.8
20531, "lng": 30.064775, "type": "PLATFORM", "id": 1025189, "quantity": 1}, {"estimated_fill": 1.0, "volume": 1.100, "name": "Вул. Фурсівсь
ка, 29 п/с", "lat": 49.821383, "lng": 30.061602, "type": "PLATFORM", "id": 1025167, "quantity": 1}, {"estimated_fill": 1.0, "volume": 1.100
, "name": "Вул. Фурсівська, 21 п/с", "lat": 49.820526, "lng": 30.061734, "type": "PLATFORM", "id": 1025166, "quantity": 1}], "destination":
 {"estimated_fill": 1.0, "volume": 1.100, "name": "Вул. Сквирське шосе, 216 а  3є щоденно,Вул. Сквирське шосе, 216 2є щоденно", "lat": 49.8
17365, "lng": 30.075344, "type": "PLATFORM", "id": 1025208, "quantity": 2}, "steps": [{"maneuver": "depart", "distance_before": 0, "itinera
ry_before": "", "location": [49.8227932, 30.0691627], "duration_before": 0}, {"maneuver": "turn-right", "distance_before": 109, "itinerary_
before": "m_boHg{ovDe@uEOoA", "location": [49.8230599, 30.0706273], "duration_before": 16}, {"maneuver": "turn-right", "distance_before": 7
28, "itinerary_before": "caboHmdpvDtFwIT_@`FaIb@q@DIDEvA}BnAsBhBsCb@o@pBeD", "location": [49.818226, 30.0774666], "duration_before": 69}, {
"maneuver": "arrive", "distance_before": 191, "itinerary_before": "}baoHeoqvD~@lAB@D@DDJN^j@BDBFBL@HRdBJlAFx@", "location": [49.817345, 30.
0753506], "duration_before": 75}], "itinerary": "m_boHg{ovDe@uEOoA??tFwIT_@`FaIb@q@DIDEvA}BnAsBhBsCb@o@pBeD??~@lAB@D@DDJN^j@BDBFBL@HRdBJlAF
x@", "destination2": {"estimated_fill": 1.0, "volume": 1.100, "name": "«АТБ-маркет», Вул. Турчанінова, 4", "lat": 49.819928, "lng": 30.0693
91, "type": "PLATFORM", "id": 1025159, "quantity": 1}}

Запрос количества поднятых контейнеров

Endpoint: http://<server_name>/components/communa/get_lifts_count

Запрос:

{"platform_id":1025157,"device_id":"29e199b8401de077"}

Ответ,

{"count": 7, "time_to": 1630938442, "time_from": 1630937859, "success": true}

Залогировать дебажное сообщение на сервере

Endpoint: http://<server_name>/components/communa/debug

Запрос:

{"device_id": "957e4432c1357f1f", "msg": "Hi there!"}

Ответ,

{"success": true}