Открыть главное меню

Изменения

Frontend API

10 032 байта добавлено, 14:14, 27 февраля 2019
Нет описания правки
Формат запросов имеет вид
<pre>http(s)://host/api/{component}/{module}/{action} + /{parameter1}/{parameter2}... (где параметры необязательны)</pre>
Пример:
http://demo.nemo.travel/api/flights/search/formData
 
Примечание: для изменения языка в ответах запросов нужно использовать GET параметр <syntaxhighlight lang="text" enclose="none" style="font-size: 1.2em; padding: 0 3px; background: #F0F0F0; border: 1px dashed #2F6FAB;">apilang=xx</syntaxhighlight>, где <syntaxhighlight lang="text" enclose="none" style="font-size: 1.2em; padding: 0 3px; background: #F0F0F0; border: 1px dashed #2F6FAB;">xx</syntaxhighlight> это 2-х буквенный код языка.
 
Пример: http://demo.nemo.travel/api/flights/utils/sunInfo/RTW/2016-06-28T15:00:00/DME/2016-06-28T20:30:00?apilang=en
= Описание запросов =
** URI /api/flights/utils/sunInfo/{dep_airport}/{depDateTimeLocal}/{arr_airport}/{arrDateTimeLocal}
*** Пример: /api/flights/utils/sunInfo/RTW/2016-06-28T15:00:00/DME/2016-06-28T20:30:00
**Примечание: для изменения языка сообщения с русского на английский следует использовать GET параметр apilang=en
***Пример: /api/flights/utils/sunInfo/RTW/2016-06-28T15:00:00/DME/2016-06-28T20:30:00?apilang=en
*Response:
* Request
** URI /api/hotels/search/request/{searchId?} (получение данных запроса поиска с идентификатором {searchId}или создание нового запроса на поиск)
** POST request="[[#hotels.search.request|hotels.search.request]]" (Параметры запроса поиска)
* Response:
== Модуль Заказов (order) ==
 
=== Модуль аутентификации ===
 
Внимание, для сохранения статуса авторизованного пользователя запросы должны быть отправлены с поддержкой cookie
 
(Параметр withCredentials = true у объекта XmlHttpRequest в случае использования JS)
 
==== Запрос аутентификации пользователя====
 
* Request
** URI /api/order/auth/request
** POST request="[[#order.auth.request|order.auth.request]]" (Параметры запроса аутентификации)
* Response:
** [[#order.auth.response|order.auth.response]] (Результат аутентификации)
** [[#system.info|system.info]] (Служебная информация)
 
==== Запрос восстановления пароля====
 
* Request
** URI /api/order/auth/sendPasswordLink
** POST request="[[#order.auth.sendPasswordLink|order.auth.sendPasswordLink]]" (Параметры запроса восстановления пароля)
* Response:
** [[#order.auth.sendPasswordLinkResponse|order.auth.sendPasswordLinkResponse]] (Информация о результате операции)
** [[#system.info|system.info]] (Служебная информация)
 
==== Запрос регистрации====
 
* Request
** URI /api/order/auth/registration
** POST request="[[#order.auth.registration|order.auth.registration]]" (Параметры запроса регистрации)
* Response:
** [[#order.auth.registrationResponse|order.auth.registrationResponse]] (Информация о результате регистрации)
** [[#system.info|system.info]] (Служебная информация)
 
==== Запрос на получение параметров капчи====
 
* Request
** URI /api/order/auth/captchaParams
* Response:
** [[#order.auth.captchaParamsResponse|order.auth.captchaParamsResponse]] (Информация о параметрах капчи)
** [[#system.info|system.info]] (Служебная информация)
 
==== Запрос проверки состояния заказа====
 
* Request
** URI /api/order/auth/status
** POST request="[[#order.auth.status|order.auth.status]]" (Параметры запроса проверки состояния заказа)
* Response:
** [[#order.auth.statusResponse|order.auth.statusResponse]] (Информация о состоянии заказа)
** [[#system.info|system.info]] (Служебная информация)
=== Модуль Протокорзина (reminder) ===
"aroundDates": 0,
"serviceClass": "All",
"airlines": [ { "IATA": "UT" } ],
"delayed": false
"priceRefundType": null
|Предпочитаемые авиакомпании
|[]
|...|-|:: Массив IATA|IATA код кодов авиакомпании|string|Строка из 2 знаков (букв латинского алфавита и цифр)
|-
|
== Заказы (order) ==
=== Протокорзина Аутентификация (reminderauth) ===
<div class="toccolours mw-collapsible mw-collapsed" style="width:800px; margin-bottom:10px;">
==== Информация о заказах пользователя Данные запроса аутентификации(ordersrequest) ====<pre id="order.reminderauth.ordersrequest">order.reminderauth.orders request = </pre>
<div class="mw-collapsible-content">
<pre>
[ { "id": 296944, "type": "oneFlight", "products": [ { "status": "completed", "type": "flight", "depAirpIATA": "VKO", "arrAirpIATA": "LED", "beginDateTime": "2015-09-29T10:00:00", "endDateTime": "2015-09-29T11:30:00", "totalPrice": { "amount": 485, "currencylogin": "RUBtest" }, "descriptionpassword": "...test" } ], "orderPrice": { "amount": 485, "currency": "RUB" } }]</pre>
{| border="1" cellpadding="10" cellspacing="0"
!Параметр
!Значения
|-
|idlogin|Идентификатор заказаЛогин пользователя|numberstring|Целое положительное числострока
|-
|typepassword|тип заказаПароль пользователя|Stringstring|Строка строка
|-
|}</div></div> <div class="toccolours mw-collapsible mw-collapsed" style="width:800px; margin-bottom:10px;">==== Данные результата аутентификации(response) ====<pre id="order.auth.response">order.auth.response = </pre><div class="mw-collapsible-content"> <pre>{ "success": true}</pre>{| border="1" cellpadding="10" cellspacing="0"!Параметр!Описание!Тип!Значения|-|success|Результат аутентификации|Boolean|Логический тип|-|}</div></div> <div class="toccolours mw-collapsible mw-collapsed" style="width:800px; margin-bottom:10px;">==== Данные запроса восстановления пароля(sendPasswordLink) ====<pre id="order.auth.sendPasswordLink">order.auth.sendPasswordLink = </pre><div class="mw-collapsible-content"> <pre>{ "login": "test"}</pre>{| border="1" cellpadding="10" cellspacing="0"!Параметр!Описание!Тип!Значения|-|login|Логин пользователя|string|строка|-|}</div></div> <div class="toccolours mw-collapsible mw-collapsed" style="width:800px; margin-bottom:10px;">==== Результат запроса восстановления пароля(sendPasswordLinkResponse) ====<pre id="order.auth.sendPasswordLinkResponse">order.auth.sendPasswordLinkResponse = </pre><div class="mw-collapsible-content"> <pre>{ "success": true, "message": "Письмо со ссылкой на восстановление пароля отправлено вам на почту"}</pre>{| border="1" cellpadding="10" cellspacing="0"!Параметр!Описание!Тип!Значения|-|success|Результат аутентификации|Boolean|Логический тип|-|message|Сообщение|string|строка|-|}</div></div> <div class="toccolours mw-collapsible mw-collapsed" style="width:800px; margin-bottom:10px;">==== Данные запроса регистрации пользователя(registration) ====<pre id="order.auth.registration">order.auth.registration = </pre><div class="mw-collapsible-content"> <pre>{ "booking_name": "tst", "booking_lastname": "tst", "registration_email": "tst@mute-lab.com", "registration_password": "tst", "booking_phone": "89271111111", "subscribe": true, "capture": "tst"}</pre>{| border="1" cellpadding="10" cellspacing="0"!Параметр!Описание!Тип!Значения|-|booking_name|Имя пользователя|string|строка|-|booking_lastname|Фамилия пользователя|string|строка|-|registration_email|Адрес электронной почты пользователя|string|строка|-|registration_password|Пароль|string|строка|-|booking_phone|Телефон пользователя|string|строка|-|subscribe|Признак согласия на получение информации о лучших предложениях|Boolean|Логический тип|-|capture|Код проверки с контрольного изображения|string|строка|-|}</div></div> <div class="toccolours mw-collapsible mw-collapsed" style="width:800px; margin-bottom:10px;">==== Результат запроса регистрации пользователя(registrationResponse) ====<pre id="order.auth.registrationResponse">order.auth.registrationResponse = </pre><div class="mw-collapsible-content"> <pre>{ "success": true, "message": "Письмо с регистрационными данными отправлено на Ваш электронный адрес. Для подтверждения регистрации перейдите, пожалуйста, по ссылке в письме.", "redirectUrl": null}</pre>{| border="1" cellpadding="10" cellspacing="0"!Параметр!Описание!Тип!Значения|-|success|Результат регистрации|Boolean|Логический тип|-|message|Сообщение|string|строка|-|redirectUrl|Ссылка для перехода|string|строка|-|}</div></div> <div class="toccolours mw-collapsible mw-collapsed" style="width:800px; margin-bottom:10px;">==== Данные результата запроса о параметрах капчи(captchaParamsResponse) ====<pre id="order.auth.captchaParamsResponse">order.auth.captchaParamsResponse = </pre><div class="mw-collapsible-content"> <pre>{ "image": "data:image/jpeg;base64,JBJ435346...."}</pre>{| border="1" cellpadding="10" cellspacing="0"!Параметр!Описание!Тип!Значения|-|image|Ссылка на изображение|string|строка|-|}</div></div> <div class="toccolours mw-collapsible mw-collapsed" style="width:800px; margin-bottom:10px;">==== Данные запроса о состоянии заказа(status) ====<pre id="order.auth.status">order.auth.status = </pre><div class="mw-collapsible-content"> <pre>{ "booking_id": 445469, "passenger_lastname": "Ivanov", "access_code": "8Z273L"}</pre>{| border="1" cellpadding="10" cellspacing="0"!Параметр!Описание!Тип!Значения|-|booking_id|Идентификатор заказа|string|строка, может содержать цифры от 0 до 9 и дефис|-|passenger_lastname|Фамилия одного из пассажиров|string|строка|-|access_code|Код доступа к заказу|string|строка|-|}</div></div> <div class="toccolours mw-collapsible mw-collapsed" style="width:800px; margin-bottom:10px;">==== Данные результата запроса о состоянии заказа(statusResponse) ====<pre id="order.auth.statusResponse">order.auth.statusResponse = </pre><div class="mw-collapsible-content"> <pre>{ "success": true, "message": null, "redirectUrl": "http://nemotravel/poffice__bookinfo?booking_id=452434"}</pre>{| border="1" cellpadding="10" cellspacing="0"!Параметр!Описание!Тип!Значения|-|success|Признак успешности получения ответа|Boolean|Логический тип|-|message|Сообщение|string|строка|-|redirectUrl|Ссылка для перехода|string|строка|-|}</div></div> === Протокорзина (reminder) === <div class="toccolours mw-collapsible mw-collapsed" style="width:800px; margin-bottom:10px;">==== Информация о заказах пользователя (orders) ====<pre id="order.reminder.orders">order.reminder.orders = </pre><div class="mw-collapsible-content"> <pre>[ { "id": 296944, "type": "oneFlight", "products": [ { "status": "completed", "type": "flight", "depAirpIATA": "VKO", "arrAirpIATA": "LED", "beginDateTime": "2015-09-29T10:00:00", "endDateTime": "2015-09-29T11:30:00", "totalPrice": { "amount": 485, "currency": "RUB" }, "description": "..." } ], "orderPrice": { "amount": 485, "currency": "RUB" } }]</pre>{| border="1" cellpadding="10" cellspacing="0"!Параметр!Описание!Тип!Значения|-|id|Идентификатор заказа|number|Целое положительное число|-|type|тип заказа|String|Строка |-|products|Массив продуктов|[]|...|-|: status|Статус|String|Строка, принимающая одно из следующих значений:: pending - ожидает бронирования,: booked - забронирован, ожидает оплаты,: completed - оплаченный|-|: type|Тип продукта|String|Строка, принимающая одно из следующих значений:: flight - перелет,: hotel - отель,: train - поездка на поезде|-|: depAirpIATA|Для перелёта - код аэропорта вылета|String|Строка из 2 знаков (букв латинского алфавита и цифр)|-|: arrAirpIATA|Для перелёта - код аэропорта прилета|String|Строка из 2 знаков (букв латинского алфавита и цифр)|-|: beginDateTime|Дата начала услуги|String|Строка в формате yyyy-MM-ddTHH:mm:ss (ISO 8601)|-|: endDateTime|Дата завершения услуги|String|Строка в формате yyyy-MM-ddTHH:mm:ss (ISO 8601)|-|: totalPrice|Цена услуги|{}
|...
|-
</div>
</div>
 
== Информация о системе (system) ==
'