Web-сервисы: Сервис по работе с историей поисковых запросов
Статья находится на стадии разработки.
Версия статьи от 22-03-2016.
Содержание
Введение
Данный модуль предназначен для получения и очистки истории запросов от конкретного пользователя из экрана QuotedDynamic.aspx ПК «Мастер-Web».
Установка
Для установки Сервиса по работе с историей поисковых запросов нужно выложить распакованные файлы из архива ws-searchHistory-2009.2.XX.XXXX.zip (кроме файла Web.config) в каталог, где лежит ПК "Мастер-Web".
Настройка
Настройки в файле WEB.CONFIG
Дополнительные настройки, задаваемые в файле web.config, находящемся в папке MasterWeb позволяют задать дополнительные условия для отображения данных.
№ | Описание | Значение | Настройка |
---|---|---|---|
1 | Настройка, позволяющая производить запись истории запросов в экране "Подбор туров с наличием мест" («QuotedDynamic») |
|
<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. Отображает время сохранения запроса в базу.
- SearchHistoryQuery – структура, содержащая информацию об одном запросе пользователя:
Метод ClearQueries
Метод, очищающий всю историю запросов пользователя.
Описание принимаемых методом параметров
Входных параметров нет.
Возвращаемые значения
- ErrorCode – целочисленное неотрицательное значение. Может содержать следующие значения:
- 0 – удаление прошло без ошибок;
- 1 – внутренняя ошибка метода;
- 2 – пользователь не найден в базе данных;
- 3 – пользователь не имеет прав на вход в ПК «Мастер-Web».