Для дробных значений в качестве разделителя целой и дробной части используйте точку.
Авторизация
Можно получать доступ к API двумя способами:
по токену клиента API - работает только получение списка грузов
по токену конечного пользователя Автодиспетчера (токен выдаваемый клиенту API для действий от лица конечного пользователя) - разрешены все действия.
Список грузов полученный по токену клиента API может отличаться от списка грузов полученного по токену конечного пользователя. В последнем случае к списку применяются фильтры из индивидуальных настроек пользователя (например, не показываются грузы от пользователей в “черном списке”).
Грузы
Обязательные http-заголовки запросов:
Accept: application/json
Content-type: application/json
Authorization: Bearer someTokenHere
Тело запроса (json) в кодировке UTF-8.
Получение списка грузов (постранично)
GET-запрос https://api.avtodispetcher.ru/v1/cargos?page=1
Ответ с http-кодом 200 содержит json со списком грузов. Список содержит полную информацию по каждому из грузов. Нет необходимости получать полную информацию по каждому из грузов отдельным запросом.
Пример ответа:
{
"count": 5, // количество грузов на текущей странице
"total": 5, // количество грузов суммарно на всех страницах
"page": 1 // номер текущей страницы
"page_count": 1, // количество страниц
"page_size": 25, // количество элементов на одну страницу
"_links": { // HAL-гиперссылки для листания списка
"self": {
"href": "https://api.avtodispetcher.ru/v1/cargos?page=1"
},
"first": {
"href": "https://api.avtodispetcher.ru/v1/cargos"
},
"last": {
"href": "https://api.avtodispetcher.ru/v1/cargos?page=1"
}
},
"_embedded": {
"cargo": [
{ // первый груз
"route": [ // секция маршрута перевозки
["city": "Москва", "region": "Московская область", "country": "Россия"],
["city": "Ростов-на-Дону", "region": "Ростовская область", "country": "Россия", "point": ["latitude": 47.25902, "longitude":39.62638]]
// обычно в маршруте две точки, но в будущем могут появиться промежуточные пункты следования. Поэтому за конечную точку маршрута следует принимать не 2-ой элемент массива, а последний элемент массива.
],
"distance": 1074, // длина маршрута. Может отсутствовать, если маршрут указан не конкретно (например "из области", а не "из города").
"cargo": { //секция описания груза
"type": "food",
"description": "карамельки",
"packageType": "case",
"weight": 1.5,
"volume": 5.5,
"length": 2.5,
"width": 2.1,
"height": 1.9,
"amount": 10,
"temperatureModeFrom": -10,
"temperatureModeTo": 5,
"dangerClass": 1, // ADR1. Диапазон значений: от 0 до 9
"note": "загрузка строго в выходные после 22:00"
},
"price": { //секция описания ставки, если она отсутствует, значит ставка договорная.
"currency": "RUR",
"prepaymentValue": 10000,
"prepaymentMethod": "cash",
"prepaymentOption": "before",
"postpaymentValue": 20000,
"postpaymentMethod": "cash",
"postpaymentOption": "onunload",
"bankDays": 5
},
"ready": { // секция описания готовности груза к отправке (ISO8601+UTC)
"from": "2016-06-23T00:00:00+03:00",
"to": "2016-06-30T00:00:00+03:00"
},
"requirements": { // секция описания требований к транспорту
"transportGroup": "special",
"transportTypes": ["awning", "box"],
"transportCount": 2,
"loadType": “top”,
"tir": 1,
"sanitaryPassport": 1,
"manipulator": 1,
"bolster": 1,
"lift": 1,
"pyramid": 1,
"headacheRack": 1,
"lowCarriage": 1,
"pneumaticSuspension": 1
},
"id": 220, // id груза в нашей БД
"creationDate": "2016-08-12T12:13:45+03:00", // дата создания груза в формате ISO8601+UTC
"modificationDate": "2016-08-12T13:14:12+03:00", // дата последней модификации
“isArchived”: 0, // груз актуален, не находится в архиве
“isBlocked”: 0, // груз не заблокирован
“isExported”: 1, // груз экспортируется в сторонние информационные системы
"contacts": [ // секция описания контактов владельца
{
"name": "Николай Иванович",
"phones": ["79185215852"]
}
],
"_links": { // HAL-гиперссылка
"self": {
"href": "https://api.avtodispetcher.ru/v1/cargos/220"
}
}
},
{ // второй груз ….
},
{ // третий груз ….
}
]
}
}
|
Получение своих грузов
GET-запрос https://api.avtodispetcher.ru/v1/cargos?person=me
Ответ с http-кодом 200 содержит json со списком грузов
Получение грузов от определенной компании
GET-запрос https://api.avtodispetcher.ru/v1/cargos?company=1234
Ответ с http-кодом 200 содержит json со списком грузов компании с идентификатором 1234
Получение одного груза
GET-запрос https://api.avtodispetcher.ru/v1/cargos/345623
Ответ с http-кодом 200 содержит json с информацией о грузе
Ответ с http-кодом 404, если груза нет
Добавление нового груза
POST-запрос https://api.avtodispetcher.ru/v1/cargos
Ответ с http-кодом 201, если груз успешно добавлен. В теле ответа json с информацией о грузе, в том числе id груза в нашей БД.
Ответ с http-кодом 422, если переданы некорректные данные. В ответном json будет описание ошибок.
Редактирование груза
PUT-запрос https://api.avtodispetcher.ru/v1/cargos/345623
Ответ с http-кодом 200, если груз успешно отредактирован. В теле ответа json с информацией о грузе.
Ответ с http-кодом 422, если переданы некорректные данные. В ответном json будет описание ошибок.
Пример тела запроса:
{
"route": [ // секция маршрута перевозки. Обязательны как минимум две точки маршрута (старт/финиш)
“Москва, Московская область, Россия”,
“Ростов-на-Дону, Ростовская область, Россия (47.25902,39.62638)"
],
"cargo": { //секция описания груза
"type": "food", // тип груза, значение из справочника типов грузов
"description": "карамельки", // дополнительное пояснение о характере груза
"packageType": "case", // тип упаковки груза, значение из справочника упаковок
"weight": 1.5, // вес в тоннах в расчете на 1 машину
"volume": 5.5, // объем в кубометрах в расчете на 1 машину
"length": 2.5, // длина груза (габарит)
"width": 2.1, // ширина груза (габарит)
"height": 1.9, // высота груза (габарит)
"amount": 10, // количество единиц груза, для штучных грузов и счетных упаковок. Например, 10 паллет.
"temperatureModeFrom": -10, // температурный режим, нижняя граница (самая холодная)
"temperatureModeTo": 5, // температурный режим, верхняя граница (самая теплая)
"dangerClass": 2, // ADR 2
"note": "загрузка строго в выходные после 22:00" // произвольное примечание
},
"price": { //секция описания ставки, или 0 если ставка договорная.
"currency": "RUR", // значение из справочника валют
"prepaymentValue": 10000,
"prepaymentMethod": "cash", // значение из справочника методов оплаты
"prepaymentOption": "before", // значение из справочника опций оплаты
"postpaymentValue": 20000,
"postpaymentMethod": "cash",
"postpaymentOption": "onunload",
"bankDays": 5 // количество банковских дней выделенных на оплату при оплате по безналу
},
"ready": { // секция описания готовности груза к отправке или 1 если готов постоянно
"from": "2016-06-23T00:00:00+03:00",
"to": "2016-06-30T00:00:00+03:00"
},
"requirements": { // секция описания требований к транспорту
"transportGroup": "special", // обязательное поле, значение из списка групп кузовов
"transportTypes": ["awning", "box"], // обязательное поле, значения из списка кузовов
"transportCount": 2, // требуемое количество машин
"loadType": “side”, // вид загрузки.
"tir": 1, // нужен TIR
"sanitaryPassport": 1, // нужен санитарный паспорт
"manipulator": 1, // нужен транспорт с манипулятором
"bolster": 1, // нужен транспорт с кониками
"lift": 1, // нужен транспорт с гидролифтом
"pyramid": 1, // нужен транспорт с “пирамидой” в кузове (перевозка листовых материалов)
"headacheRack": 1, // нужен транспорт с “катюшей” (упор над кабиной для перевозки погонажных грузов)
"lowCarriage": 1, // нужен транспорт низкорамник
"pneumaticSuspension": 1 // нужен транспорт с пневмоподвеской
},
“isArchived”: 0,
“isBlocked”: 0,
“isExported”: 1
}
|
Удаление груза
DELETE-запрос https://api.avtodispetcher.ru/v1/cargos/345623
Ответ с http-кодом 204, если груз успешно удален.
Ответ с http-кодом 403, если нет прав на удаление груза
Ответ с http-кодом 404, если груза нет
Подъем груза в списке (1 раз в час)
PATCH-запрос https://api.avtodispetcher.ru/v1/cargos/345623
В теле запроса: {"lift":"now"}
Ответ с http-кодом 200, если груз успешно поднят.
Ответ с http-кодом 403, если груз не может быть поднят (не истек 1 час с последнего поднятия)
Справочник типов грузов
значение
|
комментарий
|
food
|
продукты питания
|
common_consumption_goods
|
товары народного потребления непродовольственные
|
equipment_and_spare_parts
|
оборудование и части
|
concrete_products
|
стройматериалы: железобетонные изделия
|
bricks
|
стройматериалы: кирпич, блоки
|
friable_inert_materials
|
стройматериалы: сыпучие инертные материалы
|
cement
|
стройматериалы: цемент, сухие смеси
|
concrete
|
стройматериалы: бетон товарный
|
sheet_glass
|
стройматериалы: стекло листовое
|
other_building_materials
|
другие стройматериалы
|
pipe
|
металл: трубы, металлопрокат
|
metal_framework
|
металл: металлоконструкции
|
scrap_metal
|
металл: металлолом
|
other_metal
|
другой металл
|
lumber
|
пиломатериалы
|
empty_package
|
пустая тара и упаковка
|
paper
|
картон, бумага, макулатура
|
not_dangerous_chemicals
|
химия неопасная
|
dangerous_chemicals
|
химия опасная
|
dark_fuel_and_grease
|
ГСМ темные
|
light_fuel_and_grease
|
ГСМ светлые
|
liquefied_gas
|
газ сжиженный
|
coal_and_peat
|
уголь, торф
|
firewood_and_pellets
|
дрова, пеллеты
|
container
|
контейнер морской или железнодорожный, бытовка
|
auto_and_moto
|
авто, мото
|
semitrailer
|
полуприцеп
|
lorry_and_special_machinery
|
грузовики, спецтехника
|
feed
|
комбикорм, добавки
|
fertilizer
|
удобрения
|
grain
|
зерно, семена
|
hay
|
сено, солома
|
vegetables_and_fruits
|
овощи, фрукты
|
flour
|
мука
|
animal
|
животные, птица
|
things
|
личные вещи, переезд
|
general_cargo
|
сборный груз
|
other
|
другой
|
Справочник упаковок
значение
|
комментарий
|
bigbag
|
биг бэги
|
pallet
|
паллеты
|
box
|
коробки
|
case
|
ящики
|
barrel
|
бочки
|
eurocube
|
еврокубы
|
bag
|
мешки/сетки
|
pack
|
пачки
|
apiece
|
поштучно
|
in_bulk
|
навалом/насыпью
|
fill
|
наливной груз
|
other
|
другая
|
Справочник валют
значение
|
комментарий
|
RUR
|
Российский рубль
|
USD
|
Доллар США
|
EUR
|
Евро
|
UAH
|
Украинская гривна
|
BYR
|
Белорусский рубль
|
Справочник методов оплаты
значение
|
комментарий
|
cash
|
наличными
|
card
|
на банковскую карту
|
fuelCard
|
на топливную карту
|
cashlessWithVat
|
безнал с НДС
|
cashlessWithoutVat
|
безнал без НДС
|
Справочник опций оплаты
значение
|
комментарий
|
before
|
до рейса
|
onload
|
на погрузке
|
onunload
|
перед выгрузкой
|
cashless
|
после выгрузки по ТТН
|
Справочник кузовов
значение
|
комментарий
|
awning
|
тент
|
refrigerator
|
рефрижератор
|
box
|
фургон
|
thermobox
|
изотермический фургон
|
board
|
бортовой
|
lowboy
|
трал
|
evacuator
|
эвакуатор
|
flatbed
|
платформа
|
tipper
|
самосвал
|
mounted_container
|
пустой контейнер
|
container_frame
|
контейнеровоз
|
grain
|
зерновоз/щеповоз
|
light_oil_tank
|
цистерна для светлых ГСМ
|
dark_oil_tank
|
цистерна для темных ГСМ
|
food_tank
|
пищевая цистерна
|
auto
|
автовоз
|
timber
|
лесовоз
|
concrete
|
цементовоз/муковоз
|
mixer
|
миксер
|
panel
|
панелевоз
|
gas
|
газовоз
|
glass
|
стекловоз
|
cattle
|
скотовоз/коневоз
|
scrap
|
металловоз
|
car
|
легковой универсал
|
minibus
|
грузовой микроавтобус
|
truck_tractor
|
тягач для перегона полуприцепов
|
Справочник групп кузовов
значение
|
комментарий
|
universal
|
универсальный кузов, пригодный для перевозки большинства популярных грузов: тент или рефрижератор или фургон или изотермический фургон или бортовой или пустой контейнер или платформа или зерновоз/щеповоз
|
covered
|
закрытый кузов, защищен от осадков: тент или рефрижератор или фургон или изотермический фургон или пустой контейнер
|
special
|
специальный кузов: один или несколько произвольных кузовов из справочника кузовов
|
Справочник видов загрузки
значение
|
комментарий
|
top
|
верхняя загрузка
|
side
|
боковая загрузка
|
back
|
задняя загрузка
|
|