Сервер ожидает заголовки Accept: application/json
и Content-Type: application/json
для запросов и ответов в формате JSON
В рамках интеграции клиенту предоставляется токен авторизации <AUTH_TOKEN>. Аутентификация и авторизация для всех запросов происходит при помощи этого токена, который отправляется в заголовке Authorization: Bearer <AUTH_TOKEN>
Пример запроса:
curl https://rest.myequipage-test.com/external/rates?from=55.761303,37.614602&to=55.962710,37.404920 \
-X GET \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer <AUTH_TOKEN>'
Коды ошибок авторизации:
401
- {"type": "bad_auth", "message": "user_required"}
- в запросе не найден токен авторизации401
- {"type": "bad_auth", "message": "bad_token"}
- некорректный токен401
- {"type": "bad_auth", "message": "expired_token"}
- токен недействителен401
- {"type": "bad_auth", "message": "company_required"}
- не найдена компания401
- {"type": "bad_auth", "message": "insufficient_rights"}
- недостаточно правСервер работает с временем UTC. При бронировании заказов, время подачи машины необходимо указывать в UTC.
Пример:
Москва. Необходимо заказать машину на 15:00МСК. Время UTC в данном случае это 12:00UTC, т.е. -3 часа. Если отправить время подачи 15:00, подразумевая МСК время, то заказ будет создан на 18:00МСК.
GET /external/rates
- Получение списка тарифов по координатамGET /external/rates/:city
- Получение списка тарифов по городуGET /external/rates3/:id/transfers
- Получение списка трансферов для тарифаGET /external/flights
- поиск рейса. См. Автоматическое отслеживание рейсовPOST /external/orders
- Размещение заказаGET /external/orders
- Получение списка заказовGET /external/orders/:id
- Получение информации о заказеPATCH /external/orders/:id/cancel
- Отмена заказаPOST /external/orders/:id/pickup_at
- Эндпойнт изменения времени подачи предзаказаGET /external/cars
- Получение списка машинGET /external/me
- Информация о компании (о себе)GET /external/reports/orders.xlsx
- Выгрузка отчета по заказам. Также предусмотрены параметры для фильтрацииGET /external/rates
Параметры запроса:
Параметр | Описание | Обязательный? | Пример |
---|---|---|---|
from | Координаты точки подачи | Да | from=55.7613382222,37.5936103333 |
to | Координаты точки назначения | Нет | to=55.7713382222,37.5956103333 |
payment_method_id | Метод оплаты | Нет | payment_method_id=corp-100008 |
pickup_at | Время подачи (в UTC!) - для предзаказа | Нет | pickup_at=2019-01-20T19:46:30.768Z |
flight_id | ID рейса, в случае использования | Нет | flight_id=DDP404SVX201911010755 |
cURL example:
curl https://rest.myequipage-test.com/external/rates?from=55.761303,37.614602&to=55.962710,37.404920 \
-X GET \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer <AUTH_TOKEN>'
Коды ошибок:
404
- Not Found
- не найдены тарифы для заданных параметров400
- {"type": "validation_error", "message": "from_is_required"}
- необходимо указать точку подачи (параметр from)400
- {"type": "validation_error", "message": "position_bad_format"}
- параметр to или from не прошел валидациюПример ответа:
{
"route": {
"duration": 4089.42917107,
"distance": 32038.0932843,
"from": [
55.761303,
37.6146
],
"to": [
55.96271,
37.40492
],
"polyline": [
[
55.76130111,
37.61459365
],
[
55.96208007,
37.40522251
]
]
},
"rates": [
{
"id": 1,
"rate": "e_class",
"title": "BUSINESS",
"description": "Mercedes-Benz E-class",
"passengers": 4,
"photo_url": null,
"baggage": 3,
"price": 1079700,
"time_unit_hour": 150000
}
]
}
Параметры в ответе:
route
- содержит данные о предварительном маршруте поездки от точки from до точки to
duration
- длительность поездки (значение в секундах)distance
- расстояние (значение в метрах)from
- координаты точки подачиto
- координаты точки назначенияpolyline
- массив координат точек маршрута (трек)rates
- список доступных тарифов. См. Поля тарифаid
- идентификатор тарифаtitle
- название тарифаpassengers
- кол-во пассажировbaggage
- кол-во мест багажаdescription
- описание тарифа (список авто)rate
- код класса авто. Используется для отображения изображения и информации. Возможные значения:
e_class
s_class
maybach
v_class
bl_class
sprinter
Опциональные поля:
price
- расчетная стоимость поездки по данному тарифу (значение в копейках)photo_url
- url изображения для тарифаtime_unit_hour
- стоимость часа поездки (для почасовых тарифов, значение в копейках)flight
- данные по рейсу (как при поиске рейса). См. Автоматическое отслеживание рейсовrecommended_pickup_at
- рекомендуемое время подачи для заказов с привязкой к рейсу (если NULL - значит рекомендуется АСАП)GET /external/rates/:city
, где :city - идентификатор города
Параметры запроса:
Параметр | Описание | Обязательный? | Пример |
---|---|---|---|
payment_method_id | Метод оплаты | Нет | payment_method_id=corp-100008 |
cURL example:
curl https://rest.myequipage-test.com/external/rates/moscow \
-X GET \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer <AUTH_TOKEN>'
В ответе вернется список доступных тарифов:
{"rates": [{Поля тарифа} ...]}
См. Поля тарифа
Коды ошибок:
404
- Not Found
- не найдены тарифы для заданных параметров400
- {"type": "validation_error", "message": "invalid_city"}
- не прошел валидацию параметр :city
GET /external/rates3/:id/transfers
, где :id - идентификатор тарифа
cURL example:
curl https://rest.myequipage-test.com/external/rates3/9/transfers \
-X GET \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer <AUTH_TOKEN>'
Пример ответа:
{
"transfers": [
{
"from": {
"type": "airport",
"position": [
55.605688,
37.287003
],
"city": "Москва",
"display_name": "аэропорт Внуково"
},
"to": {
"type": "railway",
"position": [
55.743131,
37.566944
],
"city": "Москва",
"display_name": "Киевский вокзал"
},
"price": 130000
}
]
}
Параметры в ответе:
transfers
- список трансферов. Поля трансфера:
from
- отправная точка трансфера. Поля:
type
- тип. Возможные значения: airport, railway, objectposition
- координаты точки (широта и долгота)city
- городdisplay_name
- адрес (описание)to
- конечная точка трансфера. Поля те же, что в fromprice
- стоимость трансфера (значение в копейках)Коды ошибок:
404
- Not Found
- не найдены трансферы для тарифаPOST /external/orders
cURL example:
curl https://rest.myequipage-test.com/external/orders \
-X POST \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer <AUTH_TOKEN>' \
-d '{
"payment_method_id": "corp-100008",
"rate_id": 1,
"route": [
{
"position": [
55.764334, 37.611842
],
"address": "ул. Малая Дмитровка, 25"
},
{
"position": [
55.752792, 37.595133
],
"address": "Новый Арбат ул., 8-10"
}
],
"pickup_at": "2020-05-21T18:00:00.511Z",
"comment": "Please, wait me",
"passenger_info": {
"first_name": "John Doe",
"phone": "+79123456789"
},
"flight_id": "DSU1164SVO20200323"
}'
Описание параметров в теле запроса:
Параметр | Описание | Обязательный? | Формат |
---|---|---|---|
rate_id | id тарифа | Да | integer |
route | Массив путевых точек | Да | array of objects (Location) |
payment_method_id | Метод оплаты | Да | text |
pickup_at | Время подачи (в UTC) | Нет | text |
comment | Комментарий к заказу | Нет | text |
passenger_info | Данные о пассажире | Нет | object (PassengerInfo) |
flight_id | ID рейса, в случае использования | Нет | text |
Описание параметров объектов:
Объект | Параметр | Описание | Обязательный? | Формат |
---|---|---|---|---|
Location | position | Координаты точки (широта и долгота) | Да | array |
Location | address | Текстовое описание адреса точки | Да (нет, если указан "go_to_pin": true ) |
text |
Location | go_to_pin | В случае отсутствия address , должен быть указан данный параметр со значением true |
Нет (да, при отсутствии address ) |
boolean (only true) |
Location | city | Наименование города | Нет | text |
PassengerInfo | phone | Телефон пассажира | Да | text |
PassengerInfo | first_name | Имя пассажира | Да | text |
В случае успешного размещения в ответе вернется информация о заказе:
{"order": {Поля заказа}}
См. Поля заказа
GET /external/orders
Параметры запроса:
Параметр | Описание | Обязательный? | Пример |
---|---|---|---|
skip | Пропуск строк для пажинации | Нет | skip=10 |
limit | Предел строк для пажинации | Нет | limit=20 |
Также предусмотрены различные параметры для сортировки и фильтрации
cURL example:
curl https://rest.myequipage-test.com/external/orders \
-X GET \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer <AUTH_TOKEN>'
Ошибки:
invalid_skip_limit
- неверный формат параметров skip или limitВ ответе вернется список заказов:
{"orders": [{Поля заказа} ...]}
См. Поля заказа
GET /external/orders/:id
, где :id - идентификатор заказа
cURL example:
curl https://rest.myequipage-test.com/external/orders/8472 \
-X GET \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer <AUTH_TOKEN>'
Пример ответа:
{
"order": {
"seconds_on_the_way": 808,
"timezone": "Europe/Moscow",
"car_eta_seconds_left": 0,
"car": {
"id": 2,
"license_plate": "X777XX777",
"color": "000000",
"brand": "Mersedes-Benz",
"model": "S-class"
},
"passenger_info": {
"phone": "+79123456789",
"first_name": "John Doe"
},
"car_eta_at": "2020-03-23T14:45:45.771Z",
"completed_at": "2020-02-10T18:06:35.867Z",
"payment": {
"id": "corp-100008",
"title": "ООО \"xSpace\""
},
"time": 1996,
"breakdown": [
{
"type": "min_price",
"price": 60000
}
],
"done_at": "2020-02-10T18:06:35.867Z",
"sorted_at": "2020-02-10T18:06:35.867Z",
"route": [
{
"address": "проспект Защитников Москвы 10-184",
"position": [
55.76279,
37.59288
]
},
{
"position": [
55.974283,
37.423107
],
"go_to_pin": true
}
],
"rate": {
"id": 1,
"title": "BUSINESS"
},
"ride_etc_at": "2020-02-10T18:05:24.835Z",
"employee": {
"id": 123,
"phone": "+79123456780",
"first_name": "John",
"last_name": "Smith",
"avatar_url": null
},
"current_price": 60000,
"updated_at": "2019-06-26T16:21:15.408Z",
"status": "done",
"arrived_at": "2020-02-10T17:05:24.835Z",
"id": 8472,
"enroute_at": "2020-02-10T17:10:24.835Z",
"comment": "Please, wait me at first porch",
"paid": null,
"estimated_price": 55000,
"free_cancel_seconds_left": 0,
"additional_expenses": null,
"distance": 11114,
"driver": {
"id": 50,
"first_name": "John Snow",
"rating": 5,
"phone": "+78005553535",
"photo_url": null
},
"current_price_discounted": null,
"city_id": "moscow",
"confidence": "trust",
"price": 60000,
"pickup_at": "2020-02-10T17:09:24.835Z",
"credit": 0,
"estimated_price_discounted": null,
"created_at": "2019-06-26T16:21:15.408Z",
"rating": null,
"track": [],
"currency_code": "643"
}
}
Параметры в ответе:
order
- информация о заказе. См. Поля заказаid
- идентификатор заказаstatus
- статус заказа. Возможные значения:
new
- новый заказlooking_for_drivers
- производится поиск машиныcar_not_found
- машина не найденаon_the_way
- водитель на пути к пассажируarrived
- водитель прибыл и ожидает пассажираenroute
- водитель выполняет поездку (в пути с пассажиром)done
- заказ выполненcancelled
- заказ отмененno_show
- заказ прерван водителем (пассажир не вышел)failed
- заказ прерван администраторомcurrency_code
- код валюты. На данный момент поддерживаются следующие валюты:
643
- Российский рубль644
- EQ Coin826
- Фунт стерлингов Соединенного королевства978
- Евроprice
- сумма заказа (фактическая стоимость)credit
- скидкаcity_id
- id города, в котором находится точка подачиroute
- массив объектов - путевых точек. Поля объекта:
position
- координаты точки (широта и долгота)address
- адрес (текстовое описание)city
- наименование городаgo_to_pin
- флаг для случая, когда отсутствует addressbreakdown
- массив объектов - элементов, составляющих сумму заказа. Поля объекта:
type
- тип. Возможные типы:
distance_overlimit
- превышение (по расстоянию)transfer
- трансферtime
- время аренды (длительность аренды авто в почасовом заказе)waiting_time
- время ожиданияfixed_price
- стоимость по калькуляторуpickup_charge
- стоимость подачиmin_price
- минимальная стоимостьtips
- чаевыеprice
- стоимостьvalue
- значение величины, для которой определена стоимость в данном элементеunit
- единица измерения величиныdiscount
- скидкаcomment
- комментарий к заказуpassenger_info
- информация о пассажире. Поля:
phone
- телефонfirst_name
- имя пассажираtimezone
- таймзона заказа. Значение в формате Europe/Moscow
, Europe/London
и тп.sorted_at
- дата, по которой производятся разл. сортировки и выборкиcreated_at
- дата создания заказаupdated_at
- дата обновления заказаcurrent_price
- текущая стоимость, меняется в течение поездкиestimated_price
- расчетная стоимость, как она была оценена при размещении заказа/назначении водителяdistance
- фактическая дистанция поездки (общее расстояние), в метрахtime
- фактическая длительность поездки (время в пути), в секундахrate
- информация о тарифе. Поля:
id
- идентификатор тарифаtitle
- наименование тарифаpayment
- информация о методе оплаты. Поля:
id
- идентификатор метода оплатыtitle
- наименованиеОпциональные поля:
paid
- флаг, означающий, что заказ оплачен/не оплаченrating
- оценка заказаpickup_at
- время подачиcurrent_price_discounted
- текущая стоимость с учетом скидкиestimated_price_discounted
- расчетная стоимость с учетом скидкиfree_cancel_seconds_left
- остаток секунд до момента, после которого отмена заказа будет платнойcar_eta_seconds_left
- расчетная длительность движения водителя к пассажиру / остаток секунд до прибытия машины к точке подачиseconds_on_the_way
- фактическая длительность движения водителя к пассажиру, в секундахride_etc_seconds_left
- расчетная длительность поездки (время в пути) / остаток секунд до окончания поездки (завершения заказа)arrived_at
- фактический таймстамп момента прибытия машины к точке подачиenroute_at
- фактический таймстамп начала поездки (начало движения с пассажиром/отъезд из точки подачи)done_at
- фактический таймстамп окончания поездки (окончание движения с пассажиром/прибытие в точку назначения)completed_at
- фактический таймстамп завершения заказа (в результате окончания поездки, отмены заказа, либо его прерывания)car
- информация о машине. Поля:
id
- id машиныlicense_plate
- номерcolor
- цветbrand
- брендmodel
- модельheading
- направление (только для активных заказов)position
- координаты (только для активных заказов)driver
- информация о водителе. Поля:
id
- id водителяfirst_name
- имяrating
- рейтингphone
- телефонphoto_url
- url фотографииuser
- информация о пользователе (разместившем заказ). Поля:
id
- id пользователяphone
- телефонfirst_name
- имяlast_name
- фамилияavatar_url
- url аватараemployee
- информация о пользователе-сотруднике компании (разместившем корп. заказ). Поля:
id
- id пользователяphone
- телефонfirst_name
- имяlast_name
- фамилияavatar_url
- url аватараflight
- данные по рейсу (как при поиске рейса). См. Автоматическое отслеживание рейсовtrack
- массив координат точек маршрутаtime_unit_hour
- стоимость часа пути (наличие этого поля говорит о том, что это заказ с почасовым тарифом)rent_seconds_elapsed
- прошедшее кол-во секунд с момента начала аренды/фактическая длительность аренды авто в почасовом заказеadditional_expenses
- массив объектов - доп. расходов/услуг. Поля объекта:
id
- внутренний идентификатор (UUID)expense_type
- тип услуги:
parking
- парковкаtollway
- платная дорогаchildseat
- детское креслоcustom
- другое (в поле description
ожидается описание)description
- описание услугиamount
- сумма услугиimage_url
- опциональный URL изображения (например фото чека)ride_etc_at
- расчетный таймстамп окончания поездки (окончание движения с пассажиром/прибытие в точку назначения)car_eta_at
- расчетный таймстамп момента прибытия машины к точке подачи с учетом цепочки заказов водителяconfidence
- уровень доверия к пассажиру в заказеПримечания:
денежная единица * 100
(т.е. значение в копейках, пенсах, центах и тп). Например, price = 60000 при currency_code = "643" означает что сумма заказа = 600 рублей.driver
. Если водитель еще не назначен, то данный ключ в ответе будет отсутствовать.done
, cancelled
, no_show
или failed
.PATCH /external/orders/:id/cancel
, где :id - идентификатор заказа
cURL example:
curl https://rest.myequipage-test.com/external/orders/8472/cancel \
-X PATCH \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer <AUTH_TOKEN>'
В случае успешной отмены в ответе вернется информация о заказе:
{"order": {Поля заказа}}
См. Поля заказа
POST /external/orders/:id/pickup_at
, где :id - идентификатор заказа
cURL example:
curl https://rest.myequipage-test.com/external/orders/8472/pickup_at \
-X POST \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer <AUTH_TOKEN>' \
-d '{
"pickup_at": "2019-08-23T19:40:00.000Z"
}'
Описание параметров в теле запроса:
Параметр | Описание | Обязательный? | Формат |
---|---|---|---|
pickup_at | Новое время подачи (в UTC) | Да | text |
Коды ошибок:
404
- Not Found
- Не найден заказ400
- {"type": "invalid_operation", "message": "invalid_pickup_at"}
- неверный формат нового времени подачи400
- {"type": "invalid_operation", "message": "only_preorders_supported"}
- менять время подачи можно только для предзаказов400
- {"type": "invalid_operation", "message": "only_forward_change"}
- время подачи можно переводить только вперед400
- {"type": "invalid_operation", "message": "too_late"}
- слишком поздно - уже началась (начинается) раздача предзаказа400
- {"type": "invalid_operation", "message": "cant_change_pickup_at"}
- поменять не удалось, обратитесь в поддержкуВ случае успешного изменения в ответе вернется информация о заказе:
{"order": {Поля заказа}}
См. Поля заказа
GET /external/flights?q=<query>&date_from=2019-10-02&date_to=2019-10-03
Параметры для запроса
q
- обязательный, строка поиска, ищет по началу строки, регистронезависимо. Например SU2011
date_from
- опциональный, timestamp в UTC - фильтрует рейсы, не раньше указанного времени прибытияdate_to
- опциональный, timestamp в UTC - фильтрует рейсы по дате, не позднее этого времени прибытияcURL example:
curl https://rest.myequipage-test.com/external/flights?q=SU2011&date_from=2019-10-02&date_to=2019-10-03 \
-X GET \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer <AUTH_TOKEN>'
Возвращает список рейсов в формате
{"flights":[
{"flight":"SU1401",
"id":"SVXDSU140120190924163000",
"dep_airport":"SVX",
"dep_airport_details": null,
"dest_airport":"SVO",
"direction": "arrival",
"dest_airport_details": {"type":"airport",
"position": [55.972641, 37.414581],
"display_name": "аэропорт Шереметьево"},
"scheduled_arrival":"2019-09-24T16:30:00.000+00:00",
"estimated_arrival":"2019-09-24T16:10:32.000+00:00",
"scheduled_departure":"2019-09-24T16:10:32.000+00:00",
"estimated_departure":"2019-09-24T16:10:32.000+00:00",
"recommended_pickup_at":"2019-09-24T16:40:32.000+00:00"
}
]}
С полями
flight
- название рейсаid
- внутренний идентификатор рейсаdep_airport
- аэропорт отправленияdest_airport
- аэропорт прибытияdep_airport_details/dest_airport_details
- детали соответствующего аэропортаdirection
- arrival
- прилет, departure
- отлетscheduled_arrival
- назначенное время прибытияestimated_arrival
- расчетное время прибытияscheduled_departure
- назначенное время отлетаestimated_departure
- расчетное время отлетаДля получения информации о маршруте и рекомендуемом времени подачи авто необходимо в запросе GET /external/rates
указать параметр flight_id
Для привязки заказа к рейсу требуется в теле запроса POST /external/orders
указать параметр:
"flight_id": "<идентификатор рейса из поля id>"
Если такой рейс будет найден то заказ создастся с привязкой ко времени прибытия/отправления
В частности
flight
с данными о рейсе (в том же формате, что и для поиска)Ошибки:
invalid_flight_data
- рейс не найденpickup_at_required
- не указано время подачиinvalid_pickup_at
- неверное время подачиGET /external/cars
Параметры запроса:
Параметр | Описание | Обязательный? | Пример |
---|---|---|---|
skip | Пропуск строк для пажинации | Нет | skip=10 |
limit | Предел строк для пажинации | Нет | limit=20 |
online | Фильтр машин "на линии" | Нет | online=true |
kwfilter | Фильтр по номеру авто | Нет | kwfilter=777X |
cURL example:
curl https://rest.myequipage-test.com/external/cars \
-X GET \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer <AUTH_TOKEN>'
Ошибки:
invalid_skip_limit
- неверный формат параметров skip или limitПример ответа:
{
"cars": [
{
"driver_id": 103,
"color": "000000",
"orders_count": 1,
"brand": "Mercedes-Benz",
"year": 2018,
"status": "active",
"id": 92,
"position": [
55.76279,
37.59288
],
"rates": [
"e_class"
],
"driver": {
"id": 103,
"phone": "+79123456789",
"first_name": "Carlos",
"last_name": "Sainz",
"avatar_url": null,
"child_seats_count": 0
},
"highlight_color": "ffa500",
"license_plate": "A003AA777",
"heading": 0.0,
"model": "E-class"
}
]
}
Параметры в ответе:
cars
- список машин. См. Поля машиныid
- идентификатор машиныstatus
- статус машины. Возможные значения:
active
- активнаpending
- ожидает подтверждения администраторомblocked
- заблокированаlicense_plate
- регистрационный номер автомобиляcolor
- цветbrand
- брендmodel
- модельyear
- годheading
- текущее направление (вектор), в радианахposition
- текущие координаты автомобиляrates
- текущие тарифы автоОпциональные поля:
driver_id
- ID водителяdriver
- информация о водителе. Поля:
id
- id водителяfirst_name
- имяlast_name
- фамилияphone
- телефонphoto_url
- url фотографииchild_seats_count
- кол-во детских креселorders_count
- кол-во текущих заказов на автоhighlight_color
- цвет подсветки для авто (для карты)Колонки для сортировки передаются через query-параметр sort_by
. Колонки перечисляются через запятую, в конце указывается желаемое направление сортировки: _asc
или _desc
(по-умолчанию _asc
)
Примеры:
sort_by=price_desc,id_asc
- сделает запрос вида ORDER BY price DESC, id ASC
sort_by=price
- сделаем запрос вида ORDER BY price ASC
Колонки для фильтрации передаются через query-параметры совпадающие с именем колонки. В конце может указываться суффикс, определяющий правила фильтрации, поддерживаются множественные значения для одной колонки как с перечислением через запятую, так и с множественным указанием параметра.
Нет суффикса - точное совпадение, например
id=1&email=aa@aa.com
-> id = 1 AND email='aa@aa.com'
Суффикс _from
- больше или равно, например
sorted_at_from=2010-01-01
-> sorted_at >= '2010-01-01
Суффикс _to
- меньше или равно, например
sorted_at_to=2010-01-02
-> sorted_at <= '2010-01-01'
Суффикс _in
- включено в список, например
status_in=done,new,failed
-> status IN ('done', 'new', 'failed')
Точно также работают множественные параметры:
status=done&status=new&status=failed
-> status IN ('done', 'new', 'failed')
Суффикс _ilike
- регистронезависимый поиск по началу строки
first_name_ilike=Iva
-> first_name ILIKE 'Iva%'
- найдёт Ivan
Суффикс _isubstr
- регистронезависимый поиск по вхождению строки
first_name_isubstr=va
-> first_name ILIKE '%va%'
- найдёт Ivan, Vasiliy
Все условия собираются через логическое И
Если для отображения выборки полей слишком много, то можно ограничить выборку с помощью query-параметра fields
, в котором указываются через запятую все необходимые поля. Если параметра нет, то возвращаются все поля.
Например
GET /external/orders?fields=id,status,price
- вернёт список из объектов, у которых будут только по три поляGET /external/orders
- вернёт список из объектов, у которых будут все доступные поляkwfilter
(keyword-filter) для заказовФильтрует ИЛИ по ID заказа, ИЛИ по номеру телефона пассажира. Выборка на точные совпадения.
GET /external/orders?kwfilter=%2B79199342004
вернёт список заказов, у которых телефон пассажира 79199342004 (символ +
кодируется в URL в %2B
, без знака + будет воспринимать как integer ID заказа)GET /external/orders?kwfilter=777
вернёт заказ с ID 777
assigned
и booked
GET /external/orders?booked=true
вернет список забронированных заказов (у которых pickup_at != NULL, pickup_at > now, status = "new", driver_id = NULL)
GET /external/orders?assigned=true
вернет список заказов с назначенным водителем (для которых выполеяются условия pickup_at != NULL, pickup_at > now, status = "new", driver_id != NULL
)