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

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

Версия статьи от 7-06-2024.

Поддерживаемые версии ПК «Мастер-Тур»:
Начиная с релиза 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 – ключ страны
  • Возвращаемый результат:
    • 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 – ключ страны
    • cityKey – ключ города
  • Возвращаемый результат:
    • 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 – ключ страны
    • cityKey – ключ города
    • hotelsKey – ключ отеля
    • dateFirst – дата начала тура
    • period – длительность тура
  • Возвращаемый результат:
    • CityName – название города
    • HotelQuota – квота на отель
      • HotelName – название отеля
      • HotelQuotasInfoFew
        • Key – ключ
          • HotelKey – ключ отеля
          • RoomKey – ключ номера
          • RoomCategory – категория номера
          • PartnerKey – ключ партнера
          • LongMinMax – длительность
        • Quota – квота
          • Room – номер
            • Key – ключ номера
            • Value – название номера
          • RoomCategory – категория номера
            • Key – ключ категории номера
            • Value – название категории номера
          • HotelsKey – ключ отеля
            • Key – ключ
            • Value – название отеля
          • Date – дата
          • QuotaStatus – статус квоты
            • PlacesStatus – статус мест
            • FreePlaces – свободные места
            • IsFewPlaces – наличие нескольких мест
          • Duration – продолжительность
          • LongMax – максимальная продолжительность
          • LongMin – минимальная продолжительность
          • PartnerKey – ключ партнера
          • IsByCheckin
          • ReleasePeriod
          • CostId
        • TourProgramKey – ключ тур программы


Пример

Вызов метода 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
                                },
                                "Duration": 0,
                                "LongMax": 0,
                                "LongMin": 0,
                                "PartnerKey": 0,
                                "IsByCheckin": null,
                                "ReleasePeriod": 0,
                                "CostId": 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
                                },
                                "Duration": 0,
                                "LongMax": 0,
                                "LongMin": 0,
                                "PartnerKey": 0,
                                "IsByCheckin": null,
                                "ReleasePeriod": 0,
                                "CostId": 0
                            }
                        ],
                        "TourProgramKey": null
                    }
                ]
            }
        ]
    }
]