Подключение к репозиторию

Работа с репозиторием через веб-сервис начинается с подключения к репозитрию. Для этого предназначена операция OpenMetabase. Авторизация при подключении может осуществляться различными способами: прямое указание логина и пароля пользователя, с использованием цифровой подписи, протоколов OAuth 1.1 и 2.0 или 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>

См. также:

Подключение к веб-сервису | Использование гостевого подключения