Web-сервисы: Сервис для получения информации по турам

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

Более ранние версии:
До версии ПК «Мастер-Web» 2009.2.20.21 включительно


Содержание

[править] Введение

Данный модуль предназначен для получения информации по списку рассчитанных туров, их типам, а также детализации рассчитанных цен.

[править] Установка

Для установки Сервиса для вывода информации по туру нужно создать отдельную директорию, например, TourInfo (далее в примерах будет использоваться данное название каталога) в корневом каталоге IIS (по умолчанию c:/inetpub/wwwroot) и выложить туда распакованные файлы из архива mw-ws-tourinfo-2007.2.XX.XXXX.zip. В управлении IIS необходимо создать виртуальный каталог для папки TourInfo.

[править] Создание виртуального каталога

По умолчанию корневым каталогом IIS является C:/Inetpub/wwwroot. Для создания виртуального каталога для приложения находящегося в этом каталоге нужно выполнить следующие действия:

  • 1. Зайти в Пуск (Start) – Панель управления (Control Panel) – Администрирование (Administrative Tools)


857.PNG

  • 2. Запустить Internet Information Services (IIS) Manager


858.PNG

  • 3. В открывшемся дереве каталогов выбрать сайты (Web Sites) – Default Web Site (либо другой сайт, на который планируется установить приложение). В открывшемся списке найти папку, для которой нужно создать виртуальный каталог, кликнуть по ней правой кнопкой мыши и выбрать пункт «Преобразовать в приложение».


859.PNG

[править] Подключение к базе данных ПК «Мастер-Тур»

В файле web.config, расположенном в папке TourInfo, в которую установлен web-сервис «Сервис для получения информации по турам», пропишите необходимые параметры подключения (курсивом выделены значения, которые необходимо ввести). Строка подключения к базе данных ПК «Мастер-Тур»: <add key = "connectionString" value = "Data Source=ip-адрес сервера базы данных ПК Мастер-тур; Initial Catalog= название базы данных ПК Мастер-тур; User ID=логин пользователя ПК Мастер-тур; Password=пароль пользователя ПК Мастер-тур"/>

[править] Настройка

После установки «Сервис для получения информации по турам» доступен по адресу: http://ip-адрес сервера Мастер-Веб/TourInfo/FullTourInfoService.asmx

[править] Настройка web.config

Дополнительные настройки, задаваемые в файле web.config, позволяют задать дополнительные условия для отображения и проверки данных.

Для того, что бы в методе GetTourInfo помимо услуг, включенных в тур, отобразить услуги, прикрепленные к одному ценовому пакету, необходимо добавить настройку IncludedServiceClasses, где указать через запятые ключи классов услуг.

<add key="includedServiceClasses" value="1,4"/>

Необходимо, чтобы секция dynamicCharterClasses была одинаково настроена и в web.config самого сервиса, и в web.config основного приложения ПК Мастер-Web, если они настроены на одну базу.

[править] Настройка кэширования

Для ускоренного получения информации по турам используется механизм кэширования.

Кэшируются туры, даты заездов, услуги, курсы валют, цены.

Для включения механизма необходимо добавить внутрь секции <sectionGroup name="megatec.web"> следующие теги:

<sectionGroup name="cache">
       <section name="cachingDurations" type="System.Configuration.NameValueSectionHandler" />
</sectionGroup>

А также добавить внутрь контейнера <megatec.web> следующие теги:

<cache>
   <cachingDurations>
       <add key="extendedTourInfoCacheInterval" value="600"/>
   </cachingDurations>
</cache>

В настройке extendedTourInfoCacheInterval задается время обновление кэша информации по турам (в секундах);

ВАЖНО! Указывать временной интервал кэширования не менее часа.

[править] Подготовка данных

[править] Описание формата данных

[править] GetCountries

Параметр:token Значение:пустая строка

[править] Результат
  • ArrayOfCountry
    • Country
      • CountryID – идентификационный номер страны
      • Name – название страны

[править] GetTourTypes

Параметр:token Значение:пустая строка

[править] Результат
  • ArrayOfTourType
    • TourType
      • TourTypeID – идентификационный номер типа тура
      • Name – название типа тура

[править] GetTours

Параметр:token Значение:пустая строка
Параметр:beginDate Значение:дата, начиная с которой выбирать туры (дата создания тура) в формате «yyyy-MM-dd»

[править] Результат

  • ArrayOfTourInfo
    • TourInfo
      • TourID – идентификационный номер тура
      • TourPriceID - идентификационный номер стоимости тура
      • Name – название тура
      • TypeID – идентификационный номер типа тура
      • URL – url страницы с описанием тура
      • CreatedDate – дата создания тура (формат «yyyy-MM-ddThh:mm:ss»)
      • ValidFrom – действителен с
      • ValidTo – дейстивтелен по
      • Code – код тура
      • CountryID – идентификационный номер страны

[править] GetTourInfo

Параметр:token Значение:пустая строка
Параметр:tourKey Значение:идентификационный номер тура
Параметр:beginDate Значение:дата начиная с которой выдавать информацию в формате «yyyy-MM-dd»

[править] Результат
  • ExtendedTourInfo
    • TourID – идентификационный номер тура
    • TourPriceID - идентификационный номер стоимости тура
    • Name – название тура
    • TypeID – идентификационный номер типа тура
    • URL – url страницы с описанием тура
    • CreatedDate – дата создания тура (формат «yyyy-MM-ddThh:mm:ss»)
    • ValidFrom – действителен с
    • ValidTo – дейстивтелен по
    • Code – код тура
    • CountryID – идентификационный номер страны
    • TourByDateInfos
      • TourByDateInfo
  • Date – дата заезда
  • TourCosts
    • TourCosts
      • TourCost
  • AccomodationType – тип размещения
  • Cost – стоимость
  • Currency – валюта
  • ServicesCosts
    • ServiceCost
      • ServiceName – назавние услуги
      • Cost – стоимость услуги
      • Currency – валюта
      • TransportKey – ключ транспорта (-1, если услуга не подразвумевает схему размещения в транспорте)
      • ServiceID – идентификационный номер услуги

[править] GetBusyBusPlan

Параметр:token Значение:пустая строка
Параметр:tourKey Значение:идентификационный номер тура
Параметр:tourDate Значение:дата начиная с которой выдавать информацию в формате «yyyy-MM-dd»

[править] Результат

  • BusPlan
    • TransportKey – идентификационный номер траспортного средства
    • Title – название транспортного средства
    • AreasCount – количество зон (автобусов)
    • RowsCount – количество рядов
    • ColumnsCount – количество мест в ряду
    • Cells
      • BusPlanCell
        • Row – горизонтальная составляющая координаты места
        • Column – вертикальная составляющая координаты места
        • Area – зона (номер автобуса)
        • BusPlanCellType – тип места (None, Comment - комментарий, Gangway – проход, Seat – пассажирское место)
        • IsUsed – true – место занято, иначе - false

[править] Работа в системе

[править] Метод получения списка стран (GetCountries)

[править] Пример SOAP-запроса к сервису:
POST /tourinfo/FullTourInfoService.asmx HTTP/1.1
Host: localhost
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "http://megatec.ru/GetCountries"

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <GetCountries xmlns="http://megatec.ru/">
      <token>string</token>
    </GetCountries>
  </soap:Body>
</soap:Envelope>
[править] Пример SOAP-ответа сервиса
<?xml version="1.0" encoding="UTF-8"?>
-<ArrayOfCountry xmlns="http://megatec.ru/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
   -<Country>
       <CountryID>90</CountryID>
       <Name>Австрия</Name>
    </Country>
   -<Country>
       <CountryID>222</CountryID>
       <Name>Англия</Name>
    </Country>
   -<Country>
       <CountryID>376</CountryID>
       <Name>Андорра</Name>
    </Country>
   -<Country>
       <CountryID>2</CountryID>
       <Name>Арабск. Эмираты</Name>
    </Country>
   -<Country>
       <CountryID>375</CountryID>
       <Name>Беларусь</Name>
    </Country>
 </ArrayOfCountry>


[править] Метод получения списка типов тура (GetTourTypes)

[править] Пример SOAP-запроса к сервису
POST /tourinfo/FullTourInfoService.asmx HTTP/1.1
Host: localhost
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "http://megatec.ru/GetTourTypes"

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <GetTourTypes xmlns="http://megatec.ru/">
      <token>string</token>
    </GetTourTypes>
  </soap:Body>
</soap:Envelope>
[править] Пример SOAP-ответа сервиса
 <?xml version="1.0" encoding="UTF-8"?>
-<ArrayOfTourType xmlns="http://megatec.ru/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
   -<TourType>
       <TourTypeID>12</TourTypeID>
       <Name>Excursions_Optional</Name>
    </TourType>
   -<TourType>
       <TourTypeID>13</TourTypeID>
       <Name>Excursions_Required</Name>
    </TourType>
   -<TourType>
       <TourTypeID>14</TourTypeID>
       <Name>ExtraServices_Optional</Name>
    </TourType>
   -<TourType>
       <TourTypeID>15</TourTypeID>
       <Name>ExtraServices_Required</Name>
    </TourType>
 </ArrayOfTourType>


[править] Метод получения списка туров (GetTours)

[править] Пример SOAP-запроса к сервису
POST /tourinfo/FullTourInfoService.asmx HTTP/1.1
Host: localhost
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "http://megatec.ru/GetTours"

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <GetTours xmlns="http://megatec.ru/">
      <token>string</token>
      <beginDate>string</beginDate>
    </GetTours>
  </soap:Body>
</soap:Envelope> 
[править] Пример SOAP-ответа сервиса
<?xml version="1.0" encoding="UTF-8"?>
-<ArrayOfTourInfo xmlns="http://megatec.ru/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
   -<TourInfo>
       <TourID>412</TourID>
       <TourPriceID>493</TourPriceID>
       <Name>0507 ПЭ</Name>
       <TypeID>0</TypeID>
       <URL/>
       <CreatedDate>2016-10-27T17:32:27.353</CreatedDate>
       <ValidFrom>2016-10-27T00:00:00</ValidFrom>
       <ValidTo>2016-12-27T00:00:00</ValidTo>
       <Code>0507</Code>
       <CountryID>90</CountryID>
    </TourInfo>
   -<TourInfo>
       <TourID>250</TourID>
       <TourPriceID>509</TourPriceID>
       <Name>Тур 18-05</Name>
       <TypeID>0</TypeID>
       <URL/>
       <CreatedDate>2016-10-31T10:20:52.23</CreatedDate>
       <ValidFrom>2016-10-31T11:18:00</ValidFrom>
       <ValidTo>2016-12-28T00:00:00</ValidTo>
       <Code>Тур</Code>
       <CountryID>90</CountryID>
    </TourInfo>
   -<TourInfo>
       <TourID>259</TourID>
       <TourPriceID>525</TourPriceID>
       <Name>Тур для ПЭ</Name>
       <TypeID>10</TypeID>
       <URL/>
       <CreatedDate>2016-11-07T12:46:35.81</CreatedDate>
       <ValidFrom>2016-11-03T00:00:00</ValidFrom>
       <ValidTo>2016-12-29T00:00:00</ValidTo>
       <Code>Тур</Code>
       <CountryID>222</CountryID>
    </TourInfo>
 </ArrayOfTourInfo>


[править] Метод получения детализации по туру (GetTourInfo)

[править] Пример SOAP-запроса к сервису
POST /tourinfo/FullTourInfoService.asmx HTTP/1.1
Host: localhost
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "http://megatec.ru/GetTourInfo"

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <GetTourInfo xmlns="http://megatec.ru/">
      <token>string</token>
      <tourKey>int</tourKey>
      <beginDate>string</beginDate>
    </GetTourInfo>
  </soap:Body>
</soap:Envelope>
[править] Пример SOAP-ответа сервиса
<?xml version="1.0" encoding="UTF-8"?>
-<ExtendedTourInfo xmlns="http://megatec.ru/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
   <TourID>280</TourID>
   <TourPriceID>536</TourPriceID>
   <Name>ang</Name>
   <TypeID>2</TypeID>
   <URL/>
   <CreatedDate>2016-11-15T11:45:55.81</CreatedDate>
   <ValidFrom>2016-11-15T11:44:00</ValidFrom>
   <ValidTo>2016-11-28T00:00:00</ValidTo>
   <Code>ang</Code>
   <CountryID>222</CountryID>
  -<TourByDateInfos>
     -<TourByDateInfo>
         <Date>2016-11-16T00:00:00</Date>
        -<TourCosts>
           -<TourCost>
               <PriceKey>512216</PriceKey>
               <AccomodationType>R1 (Luxe) 2AD</AccomodationType>
               <Cost>348</Cost>
               <Currency>$</Currency>
              -<ServicesCosts>
                 -<ServiceCost>
                     <ServiceName>HOTEL::Лондон/Четвертый-4*,2 ночи/R1(Luxe),2AD/test/</ServiceName>
                     <Cost>200</Cost>
                     <Currency>$</Currency>
                     <TransportKey>-1</TransportKey>
                     <ServiceID>10312861</ServiceID>
                     <ServiceVariants/>
                  </ServiceCost>
                 -<ServiceCost>
                     <ServiceName>HOTEL::Лондон/Первый-5*,1 ночь/Single(Garden View ),1AD/FB Пансион/</ServiceName>
                     <Cost>20</Cost>
                     <Currency>$</Currency>
                     <TransportKey>-1</TransportKey>
                     <ServiceID>10312862</ServiceID>
                     <ServiceVariants/>
                  </ServiceCost>
                 -<ServiceCost>
                     <ServiceName>HOTEL::Лондон/Тестовый отель 2-1*,1 ночь/Двухместный номер(Standart),2A!/BB Завтрак буфет/</ServiceName>
                     <Cost>30</Cost>
                     <Currency>$</Currency>
                     <TransportKey>-1</TransportKey>
                     <ServiceID>10312863</ServiceID>
                     <ServiceVariants/>
                  </ServiceCost>
                 -<ServiceCost>
                     <ServiceName>Трансфер::Лондон//автобус,20 чел./</ServiceName>
                     <Cost>78</Cost>
                     <Currency>$</Currency>
                     <TransportKey>3</TransportKey>
                     <ServiceID>10312864</ServiceID>
                     <ServiceVariants/>
                  </ServiceCost>
                 -<ServiceCost>
                     <ServiceName>Аренда автомобиля::Англия/BMW/</ServiceName>
                     <Cost>20</Cost>
                     <Currency>$</Currency>
                     <TransportKey>-1</TransportKey>
                     <ServiceID>10312865</ServiceID>
                     <ServiceVariants/>
                  </ServiceCost>
               </ServicesCosts>
               <PlacesCount>-1</PlacesCount>
            </TourCost>
         </TourCosts>
      </TourByDateInfo>
   </TourByDateInfos>
</ExtendedTourInfo>


[править] Метод получения детализации по плану рассадки (GetBusyBusPlan)

[править] Пример SOAP-запроса к сервису
POST /tourinfo/FullTourInfoService.asmx HTTP/1.1
Host: localhost
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "http://megatec.ru/GetTourInfo"

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <GetTourInfo xmlns="http://megatec.ru/">
      <token>string</token>
      <tourKey>int</tourKey>
      <tourDate>string</tourDate >
    </GetTourInfo>
  </soap:Body>
</soap:Envelope>
[править] Пример SOAP-ответа сервиса
<?xml version="1.0" encoding="UTF-8"?>
-<BusPlan xmlns="http://megatec.ru/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
   <TransportKey>3</TransportKey>
   <Title>автобус</Title>
   <AreasCount>1</AreasCount>
   <RowsCount>4</RowsCount>
   <ColumnsCount>2</ColumnsCount>
  -<Cells>
      -<BusPlanCell>
          <IsUsed>false</IsUsed>
          <Row>0</Row>
          <Column>0</Column>
          <Area>0</Area>
          <BusPlanCellType>Comment</BusPlanCellType>
          <Name>Гид</Name>
       </BusPlanCell>
      -<BusPlanCell>
          <IsUsed>false</IsUsed>
          <Row>0</Row>
          <Column>1</Column>
          <Area>0</Area>
          <BusPlanCellType>Gangway</BusPlanCellType>
          <Name/>
       </BusPlanCell>
      -<BusPlanCell>
          <IsUsed>false</IsUsed>
          <Row>1</Row>
          <Column>0</Column>
          <Area>0</Area>
          <BusPlanCellType>Seat</BusPlanCellType>
          <Name>6</Name>
       </BusPlanCell>
      -<BusPlanCell>
          <IsUsed>false</IsUsed>
          <Row>1</Row>
          <Column>1</Column>
          <Area>0</Area>
          <BusPlanCellType>Gangway</BusPlanCellType>
          <Name/>
       </BusPlanCell>
      -<BusPlanCell>
          <IsUsed>false</IsUsed>
          <Row>2</Row>
          <Column>0</Column>
          <Area>0</Area>
          <BusPlanCellType>Seat</BusPlanCellType>
          <Name>10</Name>
       </BusPlanCell>
      -<BusPlanCell>
          <IsUsed>false</IsUsed>
          <Row>2</Row>
          <Column>1</Column>
          <Area>0</Area>
          <BusPlanCellType>None</BusPlanCellType>
          <Name/>
       </BusPlanCell>
      -<BusPlanCell>
          <IsUsed>false</IsUsed>
          <Row>3</Row>
          <Column>0</Column>
          <Area>0</Area>
          <BusPlanCellType>Seat</BusPlanCellType>
          <Name>7</Name>
       </BusPlanCell>
      -<BusPlanCell>
          <IsUsed>false</IsUsed>
          <Row>3</Row>
          <Column>1</Column>
          <Area>0</Area>
          <BusPlanCellType>None</BusPlanCellType>
          <Name/>
       </BusPlanCell>
   </Cells>
 </BusPlan>


Личные инструменты
Пространства имён

Варианты
Просмотры
Действия
Навигация
Инструменты