Web-сервисы: Сервис по работе с историей поисковых запросов

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

Статья находится на стадии разработки.

Версия статьи от 21-07-2016.

Введение

Данный модуль предназначен для получения и очистки истории запросов от конкретного пользователя из экрана QuotedDynamic.aspx ПК «Мастер-Web».

Установка

Для установки Сервиса по работе с историей поисковых запросов нужно выложить распакованные файлы из архива ws-searchHistory-2009.2.XX.XXXX.zip (кроме файла Web.config) в каталог, где лежит ПК "Мастер-Web".

Настройка

Настройки в файле WEB.CONFIG

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

Описание Значение Настройка
1 Настройка, позволяющая производить запись истории запросов в экране "Подбор туров с наличием мест" («QuotedDynamic»)
  • true — производит запись истории запросов;
  • false или отсутствие настройки — не производит запись истории запросов
<add key="EnableWriteToSearchHistory" value="true"/>
2 Настройка, определяющая максимальное значение записей в истории по одному пользователю, передающихся сервисом. Целочисленное неотрицательное значение. Если настройка не указана – значение по умолчанию 10.
<add key="MaxQueriesCount" value="10" />
3 Настройка, определяющая максимальное значение записей в истории по одному пользователю.

Настройка работает в экране «Динамический лист с наличием мест».

Целочисленное неотрицательное значение. Если настройка не указана – значение по умолчанию 10.
<add key="maxQueriesCountInHistoryPerUser" value="10" />

Для успешной работы сервиса в файле web.config также необходимо дополнить следующие разделы конфигурации. В секцию <system.serviceModel> добавить:

<standardEndpoints>
<webScriptEndpoint>
 <clear />
 <standardEndpoint crossDomainScriptAccessEnabled="true"></standardEndpoint>
</webScriptEndpoint>
</standardEndpoints>

В секцию <extensions> добавить:

<bindingElementExtensions>
 <add name="jsonpMessageEncoding" type="Megatec.MasterWeb.Services.JSONPServicesEnabled.JsonpBindingExtension, 
    Megatec.MasterWeb.Services.JSONPServicesEnabled, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
</bindingElementExtensions>
<behaviorExtensions>
 <add name="searchHistoryBehaviourExtension" type="Megatec.MasterWeb.Services.SearchHistory.ServiceModelExtensions.SearchHistoryBehaviourExtensionElement, 
    Megatec.MasterWeb.Services.SearchHistory" />
</behaviorExtensions>

В секцию <bindings> добавить:

<wsHttpBinding>
 <binding name="CommonAnonymousBinding" closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:10:00" 
    sendTimeout="00:01:00" transactionFlow="false" hostNameComparisonMode="StrongWildcard" maxReceivedMessageSize="25000000">
     <readerQuotas maxDepth="32" maxStringContentLength="25000000" maxArrayLength="25000000" maxBytesPerRead="8092" maxNameTableCharCount="25000000"/>
     <reliableSession ordered="true" inactivityTimeout="00:10:00" enabled="false"/>
     <security mode="None"/>
 </binding>
</wsHttpBinding>
<customBinding>
 <binding name="jsonpBinding">
  <jsonpMessageEncoding />
  <httpTransport manualAddressing="true" />
 </binding>
</customBinding>

В секцию <services> добавить:

<service name="Megatec.MasterWeb.Services.SearchHistory.SearchHistory" behaviorConfiguration="SearchHistoryBehavior">
 <endpoint address="Anonymous" binding="wsHttpBinding" name="Megatec.MasterWeb.Services.Contracts.ISearchHistoryAnonymous" 
   contract="Megatec.MasterWeb.Services.Contracts.SearchHistory.ISearchHistory"/>
 <endpoint address="Json" behaviorConfiguration="webHttpBehavior" binding="customBinding" bindingConfiguration="jsonpBinding" name=
   "Megatec.MasterWeb.Services.Contracts.ISearchHistoryJson" contract="Megatec.MasterWeb.Services.Contracts.SearchHistory.ISearchHistory"/>
</service>

В секцию <behaviors> добавить:

<endpointBehaviors>
 <behavior name="webHttpBehavior">
  <searchHistoryBehaviourExtension />
 </behavior>
</endpointBehaviors>
<serviceBehaviors>
 <behavior name="SearchHistoryBehavior">
  <serviceMetadata httpGetEnabled="true"/>
  <serviceDebug includeExceptionDetailInFaults="true"/>
 </behavior>
</serviceBehaviors>

В секцию </system.serviceModel> добавить:

<serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true"/>

В секцию <excludedPaths> добавить:

<blowery.web>
...
 <httpCompress>
 ...
  <excludedPaths>
  ... 
   <add path="SearchHistory.svc"/>
   <add path="SearchHistory.svc/Anonymous"/>
   <add path="SearchHistory.svc/Json/GetQueries"/>
   <add path="SearchHistory.svc/Json/ClearQueries"/>
  </excludedPaths>
 
 </httpCompress>

</blowery.web>

Работа в системе

Сервис предоставляет возможность пользователю:

  • По авторизационным куки пользователя в ПК "Мастер-Web" возвращает историю поисковых запросов, выполненных из экрана "QuotedDynamic";
  • По авторизационным куки пользователя в ПК "Мастер-Web" очищает историю пользователя;
  • В случае отсутствия авторизационных куки возвращает код ошибки 3, а при возникновении любой внутренней ошибки сервиса возвращает пользователю описание ошибки.

К сервису можно обращаться по двум адресам – по [host]/SearchHistory.svc/Anonymous (стандартный адрес для получения, передачи soap сообщения) и по [host]/SearchHistory.svc/Json/GetQueries и [host]/SearchHistory.svc/Json/ClearQueries для получения данных в формате Json.

Метод GetQueries

Основной метод сервиса, возвращающий список запросов пользователя к базе.

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

Входных параметров нет.

Возвращаемые значения

  • ErrorCode – целочисленное неотрицательное значение. Может содержать следующие значения:
    • 0 – проверка прошла без ошибок;
    • 1 – внутренняя ошибка метода;
    • 2 – пользователь не найден в базе данных;
    • 3 – пользователь не имеет прав на вход в ПК «Мастер-Web».
  • SearchHistoryQueries – структура, содержащая информацию о списке запросов пользователя:
    • SearchHistoryQuery – структура, содержащая информацию об одном запросе пользователя:
      • QueryName – строковое значение. Содержит текстовое описание на русском языке всех параметров запроса поиска;
      • QueryString – строковое значение. Содержит ссылку на экран поиска со всеми параметрами в GET формате;
      • QueryTime – строка в формате YYYY-dd-MM HH:mm:ss. Отображает время сохранения запроса в базу.

Метод ClearQueries

Метод, очищающий всю историю запросов пользователя.

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

Входных параметров нет.

Возвращаемые значения

  • ErrorCode – целочисленное неотрицательное значение. Может содержать следующие значения:
    • 0 – удаление прошло без ошибок;
    • 1 – внутренняя ошибка метода;
    • 2 – пользователь не найден в базе данных;
    • 3 – пользователь не имеет прав на вход в ПК «Мастер-Web».