API Сервис Ostrovok

Материал из Megatec
Версия от 15:14, 26 июня 2023; Aefremov (обсуждение | вклад) (Описание методов)
Перейти к: навигация, поиск

Введение

Сервис отдает запросы посредством API. Сервис позволяет получать информацию об отелях, типах питания, вариантах размещения, бронирования, аннуляции и получения статусов заявок. Для работы сервиса необходимо установить службу Windows.

Описание методов

Получение информации обо всех отелях

Метод возвращает список отелей в формате ndjson в сжатом виде. Формат каждого отеля в результате идентичен результату запроса одного отеля..

  • Формат запроса:
    • GET .../ostrovok/v1/hotels
  • Принимаемые параметры: отсутствуют
  • Возвращаемый результат:
    • id * – идентификатор отеля
    • name * – название отеля
    • description – описание отеля
    • region_id – идентификатор региона отеля
    • geo_coordinates * – координаты отеля
    • atitude * – широта, 35.346193
    • longitude * – долгота, 33.191205
    • address * – адрес отеля, «Bademli Sok. No: 1, Alsancak, Cyprus»
    • postal_code – почтовый индекс
    • contacts – контактная информация
    • phone – телефонный номер
    • email – адрес электронной почты
    • webpage – сайт
    • currency – валюта
    • stars – звездность отеля
    • rating_certificate_info – подтверждение рейтинга (звездности) отеля
    • id – номер документа
    • expiration_date * – срок действия
    • important_info – важная информация по отелю для гостей
    • check_in_instructions – информация по заезду
    • check_in_time – время заезда, 14:00
    • check_in_before_time – время окончания заезда, 18:00
    • check_out_time – время выезда, 12:00
    • images – список фотографий отеля
    • category – категория фотографии, «Холл»
    • url * – сетевой путь к файлу фотографии (например, https://www.test.com/almond/almond-holiday-village-mp-500x249.jpgImage)
    • amenities – список наименований удобств, "Beach/pool towels", "Airport transportation"
    • rooms – список комнат
    • name * – наименование комнаты (тип) (например, «Deluxe Room»)
    • description – описание комнаты
    • occupancy – максимальное количество человек
    • area – площадь комнаты
    • bed_groups – список групп размещений
    • id * – идентификатор размещения
    • name – наименование размещения (например, «double + twin»)
    • bed_types – список вариантов спальных мест
    • name * – наименование (например, «double»)
    • quantity – количество мест
    • images – список фотографий комнаты, аналогично с фотографиями отеля
    • category – категория фотографии, «Ванная комната»
    • url * – путь к файлу фотографии amenities (список наименований удобств, "shower", "tv", "soundproofing")
Пример

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

GET http://localhost:7700/ostrovok/v1/hotels

Возвращаемый результат метода hotels

{
    "id": "4646",
    "name": "Chinar",
    "region_id": "5",
    "geo_coordinates": {
        "latitude": 42.50503279113125,
        "longitude": 24.71027970314026
    },
    "address": "Bademli Sok. No: 1, Alsancak, Cyprus",
    "stars": 3,
    "images": [
        {
            "category": "General",
            "url": "https://b2b.solvex.bg/web/files/hotels/4646/hotel_images/dbl.jpg"
        },
        {
            "category": "General",
            "url": "https://b2b.solvex.bg/web/files/hotels/4646/hotel_images/deluxe apt 1.jpg"
        },
    ],
    "amenities": [
        "restaurant",
        "lobby bar",
        "conference hall",
        "SPA center",
        "Wi-Fi",
        "a computer room"
    ],
    "rooms": [
        {
            "name": "DOUBLE ROOM",
            "amenities": [
                "2 separate beds / one double bed",
                "air conditioning",
                "cable TV",
                "Wi-Fi",
                "direct dial telephone"
            ]
        },
        {
            "name": "VIP APARTMENT",
            "amenities": [
                "living room and one bedroom",
                "air conditioning",
                "cable TV",
                "Wi-Fi",
                "direct dial telephone",
                "mini bar",
            ]
        },
        {
            "name": "1-BEDROOM APARTMENT",
            "amenities": [
                "living room and one bedroom",
                "air conditioning",
                "cable TV",
                "Wi-Fi",
                "direct dial telephone",
                "mini bar",
            ]
        }
    ]
}


Получение информации об отеле по его ключу

Метод возвращает информацию по отелю по ключу отеля в формате ndjson в сжатом виде. Формат каждого отеля в результате идентичен результату запроса одного отеля..

  • Формат запроса:
    • GET .../ostrovok/v1/hotels/hotel_id
  • Принимаемые параметры: отсутствуют
    • hotel_id * – идентификатор отеля (ключ)
  • Возвращаемый результат:
    • id * – идентификатор отеля
    • name * – название отеля
    • description – описание отеля
    • region_id – идентификатор региона отеля
    • geo_coordinates * – координаты отеля
    • atitude * – широта, 35.346193
    • longitude * – долгота, 33.191205
    • address * – адрес отеля, «Bademli Sok. No: 1, Alsancak, Cyprus»
    • postal_code – почтовый индекс
    • contacts – контактная информация
    • phone – телефонный номер
    • email – адрес электронной почты
    • webpage – сайт
    • currency – валюта
    • stars – звездность отеля
    • rating_certificate_info – подтверждение рейтинга (звездности) отеля
    • id – номер документа
    • expiration_date * – срок действия
    • important_info – важная информация по отелю для гостей
    • check_in_instructions – информация по заезду
    • check_in_time – время заезда, 14:00
    • check_in_before_time – время окончания заезда, 18:00
    • check_out_time – время выезда, 12:00
    • images – список фотографий отеля
    • category – категория фотографии, «Холл»
    • url * – сетевой путь к файлу фотографии (например, https://www.test.com/almond/almond-holiday-village-mp-500x249.jpgImage)
    • amenities – список наименований удобств, "Beach/pool towels", "Airport transportation"
    • rooms – список комнат
    • name * – наименование комнаты (тип) (например, «Deluxe Room»)
    • description – описание комнаты
    • occupancy – максимальное количество человек
    • area – площадь комнаты
    • bed_groups – список групп размещений
    • id * – идентификатор размещения
    • name – наименование размещения (например, «double + twin»)
    • bed_types – список вариантов спальных мест
    • name * – наименование (например, «double»)
    • quantity – количество мест
    • images – список фотографий комнаты, аналогично с фотографиями отеля
    • category – категория фотографии, «Ванная комната»
    • url * – путь к файлу фотографии amenities (список наименований удобств, "shower", "tv", "soundproofing")
Пример

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

GET http://localhost:7700/ostrovok/v1/hotels/4646

Возвращаемый результат метода hotels

{
    "id": "4646",
    "name": "Chinar",
    "region_id": "5",
    "geo_coordinates": {
        "latitude": 42.50503279113125,
        "longitude": 24.71027970314026
    },
    "address": "Bademli Sok. No: 1, Alsancak, Cyprus",
    "stars": 3,
    "images": [
        {
            "category": "General",
            "url": "https://b2b.solvex.bg/web/files/hotels/4646/hotel_images/dbl.jpg"
        },
        {
            "category": "General",
            "url": "https://b2b.solvex.bg/web/files/hotels/4646/hotel_images/deluxe apt 1.jpg"
        },
    ],
    "amenities": [
        "restaurant",
        "lobby bar",
        "conference hall",
        "SPA center",
        "Wi-Fi",
        "a computer room"
    ],
    "rooms": [
        {
            "name": "DOUBLE ROOM",
            "amenities": [
                "2 separate beds / one double bed",
                "air conditioning",
                "cable TV",
                "Wi-Fi",
                "direct dial telephone"
            ]
        },
        {
            "name": "VIP APARTMENT",
            "amenities": [
                "living room and one bedroom",
                "air conditioning",
                "cable TV",
                "Wi-Fi",
                "direct dial telephone",
                "mini bar",
            ]
        },
        {
            "name": "1-BEDROOM APARTMENT",
            "amenities": [
                "living room and one bedroom",
                "air conditioning",
                "cable TV",
                "Wi-Fi",
                "direct dial telephone",
                "mini bar",
            ]
        }
    ]
}


Получение информации о типах питания

Метод возвращает список типов питания в формате ndjson в сжатом виде.

  • Формат запроса:
    • GET .../ostrovok/v1/meals
  • Принимаемые параметры: отсутствуют
  • Возвращаемый результат:
    • id * – идентификатор типа питания
    • name * – наименование типа питания
Пример

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

GET http://localhost:7700/ostrovok/v1/meals

Возвращаемый результат метода meals

    {
        "id": "1",
        "name": "Full Board"
    },
    {
        "id": "2",
        "name": "All Inclusive"
    }


Получение информации о типах размещений по отелям или региону с учетом цен

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

  • Формат запроса:
    • POST .../ostrovok/v1/search
  • Принимаемые параметры:
    • check_in * – дата планируемого заезда
    • check_out * – дата выезда
    • residency * – страна (рынок)
    • guests_groups * – список групп гостей для отбора размещений
      • adults – взрослых
      • children_ages – список возрастов детей
    • region_id – поиск по региону, если задан, то не учитываются ключи отелей
    • hotel_ids – ключи отелей для поиска
  • Возвращаемый результат:
    • hotel_id * – идентификатор отеля
    • rates – список вариантов размещения
      • id * – идентификатор размещения, формируется сервисом
      • price * – цена
      • commission – комиссия
      • payment_type * – тип платежа (предоплата или по заезду)
      • currency * – валюта
      • meals – список типов питания
        • id * – идентификатор питания
        • name * – наименование питания,
      • cancellation_policies – список штрафов
        • from * – начало действия штрафа
        • amount * – величина штрафа
      • rooms * – список комнат
        • id * – идентификатор, генерируемый системой
        • name * – наименование комнаты (например, «Deluxe Room»)
        • bed_groups – список групп размещений
          • id * – идентификатор размещения
          • name – наименование размещения (например, «double + twin»)
          • bed_types – список вариантов спальных мест
            • name * – наименование (например, «double»)
            • quantity – количество мест
Пример

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

POST http://localhost:7700/ostrovok/v1/search
{
  "check_in": "2023-06-01",
  "check_out": "2023-06-07",
  "residency": "BG",
  "guests_groups": [
    {
      "adults": 2
    },
	{
      "adults": 1
    }
  ],
  "hotel_ids": [
    "2967"
  ]
}

Возвращаемый результат метода search

    {
        "id": "1",
        "name": "Full Board"
    },
    {
        "id": "2",
        "name": "All Inclusive"
    }