Работа с репозиторием через веб-сервис начинается с подключения к репозитрию. Для этого предназначена операция OpenMetabase. Авторизация при подключении может осуществляться различными способами: прямое указание логина и пароля пользователя, с использованием цифровой подписи, протоколов OAuth или SAML. В зависимости от выбранного способа авторизации может потребоваться предварительная настройка BI-сервера. Различные настройки, которые могут быть проведены на стороне BI-сервера, описаны в следующих подразделах:
Результатом работы операции OpenMetabase будет моникер, который в дальнейшем будет использоваться для выполнения различных операций по управлению репозиторием и работы с его объектами. Список доступных операций и их описание представлено в разделе «Операции сервиса PP.SOM». Также имеется ряд оптимизированных операций, которые не используют JSON/SOAP структуры, а выполняются путем указании их в адресной строке при обращении к BI-серверу.
Также для ознакомительной работы с веб-сервисом может быть организовано гостевое подключение не требующее специального подключения к репозиторию через операцию OpenMetabase.
Ниже приведен пример кода html-страницы, при открытии которой будет осуществляться подключение к репозиторию через BI-сервер, расположенный по адресу, заданному в переменной svc. Описание репозитория, зарегистрированное в реестре BI-сервера, должно иметь идентификатор «PPREPOSITORY». При выполнении кода по подключению в тексте html-страницы будет отображен отправляемый запрос и результат его выполнения: ответ, полученный от BI-сервера, или код ошибки, если подключение к репозиторию невозможно.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html> <head> <title>Example for web service</title> <meta http-equiv="X-UA-Compatible" content="IE=8" > </head> <body> <script language="javascript" type="text/javascript"> <!--Адрес, по которому доступен BI-сервер--> var svc = "http://localhost:9090/axis2/services/PP.SOM.Som"; <!--JSON-запрос на открытие репозитория--> OpenMetabase = { "OpenMetabase": { "tDef": { "id": "PPREPOSITORY" }, "tCreds": { "user": { "id": "pprepository" }, "pass": "pprepository" } } } <!--Выполнение запроса--> OpenMetabaseResult = PostRequest(svc, OpenMetabase); <!--Функция для отправки JSON-запроса--> function PostRequest(url, request) { document.writeln("<hr>Запрос:<p>" + JSON.stringify(request) + "<p>"); <!--Отправка запроса--> var xhr = new XMLHttpRequest(); xhr.open("POST", url, false); xhr.setRequestHeader('Content-Type', 'application/json;charset=UTF-8'); xhr.send(JSON.stringify(request)); if (xhr.status == 200) { document.writeln("Ответ:<p>" + xhr.responseText + "<p>"); return eval("(" + xhr.responseText + ")"); } else { document.writeln("Ошибка выполнения запроса:<p>" + xhr.responseText + "<p>"); return { "error" : true }; } } </script> </body> </html>
См. также:
Подключение к веб-сервису | Использование гостевого подключения