Мастер-Тур(15):API для разработки отображения наличия мест на отели

Материал из Megatec
Перейти к: навигация, поиск

Версия статьи от 14-10-2025.

Поддерживаемые версии ПК «Мастер-Тур»:
Начиная с релиза 15.9


Введение

Данный web-сервис предназначен для разработки отображения наличия мест на отели на основе API.

Установка

Для работы с web-сервисом необходимо на отдающей стороне установить службу поиска.
После установки web-сервис будет доступен по адресу http://значение настройки "serviceAddress" в TourSearchOwin/"название метода" (пример: http://localhost:9000/TourSearchOwin/Settings)

Список методов

Выгрузка настроек службы поиска (Setting)

Метод производит выгрузку настроек службы поиска.

  • Формат запроса:
    • GET .../TourSearchOwin/Setting?
  • Принимаемые параметры:
    • нет принимаемых параметров
  • Возвращаемый результат:
    • seatsQuotaDescription - текст, отображаемый на вкладке «Наличие мест» при поиске для значения «Есть»
    • noSeatsQuotaDescription - текст, отображаемый на вкладке «Наличие мест» при поиске для значения «Нет»
    • reqSeatsQuotaDescription - текст, отображаемый на вкладке «Наличие мест» при поиске для значения «Запрос»
    • fewSeatsQuotaDescription - текст, отображаемый на вкладке «Наличие мест» при поиске для значения «Мало»

Значение текста изменяется по настройке Меню → Администрирование → Настройки → Настройки квотирования


Пример

Вызов метода Setting

GET http://localhost:9000/TourSearchOwin/QuotedHotels/Setting

Возвращаемый результат метода Setting (в формате JSON)

{
    "seatsQuotaDescription": "+",
    "noSeatsQuotaDescription": "-",
    "reqSeatsQuotaDescription": "?",
    "fewSeatsQuotaDescription": "+-"
}


Выгрузка списка стран (GetCountry)

Метод производит выгрузку доступных стран для экрана Наличие мест на отели.

  • Формат запроса:
    • GET .../TourSearchOwin/QuotedHotels/GetCountry?
  • Принимаемые параметры:
    • нет принимаемых параметров
  • Возвращаемый результат:
    • Country – страна
      • Key – ключ страны
      • Name – название страны
Пример

Вызов метода GetCountry

http://localhost:9000/TourSearchOwin/QuotedHotels/GetCountry

Возвращаемый результат метода GetCountry (в формате JSON)

[
    {
        "Country": {
            "Key": 6279,
            "Name": "Belarusia"
        }
    },
    {
        "Country": {
            "Key": 6259,
            "Name": "Russia"
        }
    },
    {
        "Country": {
            "Key": 90,
            "Name": "Австрия"
        }
    },
    {
        "Country": {
            "Key": 222,
            "Name": "Англия"
        }
    },
    {
        "Country": {
            "Key": 6394,
            "Name": "Бахрейн"
        }
    },
    {
        "Country": {
            "Key": 375,
            "Name": "Беларусь"
        }
    },
    {
        "Country": {
            "Key": 6305,
            "Name": "Бельгия"
        }
    },
    {
        "Country": {
            "Key": 359,
            "Name": "Болгария"
        }
    },
    {
        "Country": {
            "Key": 40,
            "Name": "Германия"
        }
    },
    {
        "Country": {
            "Key": 1,
            "Name": "Голландияя"
        }
    },
    {
        "Country": {
            "Key": 29,
            "Name": "Греция"
        }
    },
    {
        "Country": {
            "Key": 6251,
            "Name": "Грузия"
        }
    },
    {
        "Country": {
            "Key": 9,
            "Name": "Египет"
        }
    },
    {
        "Country": {
            "Key": 729,
            "Name": "Израиль"
        }
    },
    {
        "Country": {
            "Key": 6288,
            "Name": "Ирландия"
        }
    },
    {
        "Country": {
            "Key": 80,
            "Name": "Италия"
        }
    },
    {
        "Country": {
            "Key": 3272,
            "Name": "Казахстан"
        }
    },
    {
        "Country": {
            "Key": 10,
            "Name": "Кипр"
        }
    },
    {
        "Country": {
            "Key": 6243,
            "Name": "Куба"
        }
    },
    {
        "Country": {
            "Key": 603,
            "Name": "Малайзия"
        }
    },
    {
        "Country": {
            "Key": 960,
            "Name": "Мальдивы"
        }
    },
    {
        "Country": {
            "Key": 77,
            "Name": "Мексика"
        }
    }
]


Выгрузка списка городов (GetCity)

Метод производит выгрузку доступных городов в экране Наличие мест на отели.

  • Формат запроса:
    • GET .../TourSearchOwin/QuotedHotels/GetCity?
  • Принимаемые параметры:
    • countryKey – ключ страны из метода /TourSearchOwin/QuotedHotels/GetCountry?
  • Возвращаемый результат:
    • City – город
      • Key – ключ города
      • Name – название города
Пример

Вызов метода GetCity

http://localhost:9000/TourSearchOwin/QuotedHotels/GetCity?countryKey=90

Возвращаемый результат метода GetCity (в формате JSON)

[
    {
        "City": {
            "Key": -1,
            "Name": "Все"
        }
    },
    {
        "City": {
            "Key": 275,
            "Name": "Арльберг"
        }
    },
    {
        "City": {
            "Key": 1283,
            "Name": "Вега"
        }
    },
    {
        "City": {
            "Key": 35,
            "Name": "Вена"
        }
    },
    {
        "City": {
            "Key": 440,
            "Name": "Зельден"
        }
    },
    {
        "City": {
            "Key": 277,
            "Name": "Майерхoфен"
        }
    },
    {
        "City": {
            "Key": 281,
            "Name": "Фильцмоос"
        }
    },
    {
        "City": {
            "Key": 578,
            "Name": "Хиппах"
        }
    },
    {
        "City": {
            "Key": 102,
            "Name": "Цель ам Зе"
      }            
   ]
}


Выгрузка списка отелей (GetHotels)

Метод производит выгрузку всех доступных отелей с наличием мест.

  • Формат запроса:
    • GET .../TourSearchOwin/QuotedHotels/GetHotels?
  • Принимаемые параметры:
    • countryKey – ключ страны из метода /TourSearchOwin/QuotedHotels/GetCountry?
    • cityKey – ключ города из метода /TourSearchOwin/QuotedHotels/GetCity?
  • Возвращаемый результат:
    • Category – категория отеля
      • Key – ключ категории отеля
      • Name – название категории отеля
    • Hotel – отель
      • Key – ключ отеля
      • Name – название отеля
Пример

Вызов метода GetHotels

http://localhost:9000/TourSearchOwin/QuotedHotels/GetHotels?countryKey=90&cityKey=-1

Возвращаемый результат метода GetHotels (в формате JSON)

[
    {
        "Category": {
            "Key": 964,
            "Name": "!!"
        },
        "Hotel": {
            "Key": 111884,
            "Name": "1"
        }
    },
    {
        "Category": {
            "Key": 23,
            "Name": "1*++"
        },
        "Hotel": {
            "Key": 12584,
            "Name": "151515"
        }
    },
    {
        "Category": {
            "Key": 964,
            "Name": "!!"
        },
        "Hotel": {
            "Key": 111885,
            "Name": "2"
        }
    },
    {
        "Category": {
            "Key": 964,
            "Name": "!!"
        },
        "Hotel": {
            "Key": 111887,
            "Name": "4"
      }            
   ]
}


Поиск наличия мест в отелях (Search)

Метод возвращает наличие мест в определенном отеле на определенный период

  • Формат запроса:
    • GET .../TourSearchOwin/QuotedHotels/search?
  • Принимаемые параметры:
    • countryKey – ключ страны из метода /TourSearchOwin/QuotedHotels/GetCountry?
    • cityKey – ключ города из метода /TourSearchOwin/QuotedHotels/GetCity?
    • hotelsKey – ключ отеля из метода /TourSearchOwin/QuotedHotels/GetHotels?
    • dateFirst – начальная дата просмотра наличия мест на отели, от которой вычисляется период просмотра
    • period – период просмотра в днях
  • Возвращаемый результат:
    • CityName – название города
    • HotelQuota – массив данных о наличии мест на отели
      • HotelName – название отеля
      • HotelQuotasInfoFew - массив данных о наличии мест в конкретном отеле
        • Key – массив данных с указанием информации об объекте квотирования
          • HotelKey – ключ отеля
          • RoomKey – ключ типа номера
          • RoomCategory – ключ категории номера
          • PartnerKey – ключ партнера, предоставляющего объект квотирования
          • LongMinMax – продолжительность проживания по квоте (только для квот на заезд)
        • Quota – подробная информация по объекту квотирования
          • Room – массив данных о типе номера
            • Key – ключ типа номера
            • Value – название типа номера
          • RoomCategory – массив данных о категории номера
            • Key – ключ категории номера
            • Value – название категории номера
          • HotelsKey – массив данных об отеле
            • Key – ключ отеля
            • Value – название отеля
          • Date – дата предоставления объекта квотирования в формате YYYY-MMM-DDT00:00:00
          • QuotaStatus – статус объекта квотирования
            • PlacesStatus – результат проверки квоты по услуге: 1 – места есть, 2 - нет мест, 4 - запрос
            • FreePlaces – количество мест на квоте, заполняется только, если IsFewPlaces = true
            • IsFewPlaces – обозначение для статуса мест "Мало", true - количество мест в квоте указывается, false - количество мест в квоте не указывается
          • LongMax – максимальная продолжительность проживания (только для квоты по заезду)
          • LongMin – минимальная продолжительность проживания (только для квоты по заезду)
          • PartnerKey – ключ партнера, предоставляющего объект квотирования
          • IsByCheckin – 1 - квота на заезд, 0 - квота на период
          • ReleasePeriod – релиз-период для квоты
Пример

Вызов метода Search

GET http://supp-08.megatec.ru:9000/TourSearchOwin/QuotedHotels/search?countryKey=90&cityKey=-1&hotelsKey=8540&dateFirst=13.06.2024&period=30

Возвращаемый результат метода Search (в формате JSON)

[
    {
        "CityName": "Вена",
        "HotelQuota": [
            {
                "HotelName": "ALBATROS AQUA BLU",
                "HotelQuotasInfoFew": [
                    {
                        "Key": {
                            "HotelKey": 8540,
                            "RoomKey": 140,
                            "RoomCategory": 10980,
                            "PartnerKey": 0,
                            "LongMinMax": ""
                        },
                        "Quota": [
                            {
                                "Room": {
                                    "Key": 140,
                                    "Value": "1AD"
                                },
                                "RoomCategory": {
                                    "Key": 10980,
                                    "Value": "1 B/R"
                                },
                                "HotelsKey": {
                                    "Key": 8540,
                                    "Value": "ALBATROS AQUA BLU"
                                },
                                "Date": "2024-06-13T00:00:00",
                                "QuotaStatus": {
                                    "PlacesStatus": 4,
                                    "FreePlaces": 0,
                                    "IsFewPlaces": false
                                },
                                "LongMax": 0,
                                "LongMin": 0,
                                "PartnerKey": 0,
                                "IsByCheckin": null,
                                "ReleasePeriod": 0,
                            },
                            {
                                "Room": {
                                    "Key": 140,
                                    "Value": "1AD"
                                },
                                "RoomCategory": {
                                    "Key": 10980,
                                    "Value": "1 B/R"
                                },
                                "HotelsKey": {
                                    "Key": 8540,
                                    "Value": "ALBATROS AQUA BLU"
                                },
                                "Date": "2024-06-14T00:00:00",
                                "QuotaStatus": {
                                    "PlacesStatus": 4,
                                    "FreePlaces": 0,
                                    "IsFewPlaces": false
                                },
                                "LongMax": 0,
                                "LongMin": 0,
                                "PartnerKey": 0,
                                "IsByCheckin": null,
                                "ReleasePeriod": 0,
                            }
                        ],
                    }
                ]
            }
        ]
    }
]