Orbeon: использование Rest API с уровнем персистентности Oracle - PullRequest
0 голосов
/ 27 января 2012

Можете ли вы помочь нам, пожалуйста, с проблемой, касающейся Orbeon

У нас есть внешнее веб-приложение, которое включает в свои страницы Xforms, созданные с помощью Orbeon Form Builder и опубликованные в Form Runner. Мы настроили уровень персистентности Oracle для сохранения данных формы. До сих пор все в порядке. Теперь у нас есть данные из внешнего веб-приложения, которые мы хотим отправить в новую форму и сохранить их в базе данных Oracle. Итак, мы думаем об использовании API Rest, предоставляемого Orbeon, для создания данных, как описано здесь: API постоянства , выполняя ajax-вызовы ссылки для формирования данных. Но мы не знаем, как именно этого добиться (то есть, как создать вызов ajax, тело запроса и т. Д.). Можете ли вы сказать нам, если это хорошее решение и как это сделать?

Мы также попробовали это (ajax-вызов для отправки URL-адреса части экземпляра):

var buffer = "<form>" +
                "<attachment>" +
                "<attachment_one filename=" + info.attachment.name + " mediatype=" + info.attachment.contentType
            + " size=" + info.attachment.size + " >" + info.attachment.bytes + "</attachment_one>" +
                "</attachment>" +
                "</form>";
        var xmlDoc = document.implementation.createDocument("", "", null);
        xmlDoc.load(buffer);
        $.ajax({
            type: "PUT",
            url: urlToXml, // "/crud/[APPLICATION_NAME]/[FORM_NAME]/data/[FORM_DATA_ID]/data.xml"
            processData: false,
            data: xmlDoc,
            dataType: "xml",
            success: function(msg) {
                alert ("xml data sent successfully");
            }
        });

Но ответ возвращает недействительный документ XML.

Спасибо заранее

1 Ответ

0 голосов
/ 28 января 2012

Я бы не рекомендовал вам делать это через веб-браузер, так как это означало бы, что вам нужно сделать свой постоянный API доступным из Интернета. Как следствие, любой пользователь может получить доступ к любым данным в вашей базе данных, включая обновление и удаление данных.

Если безопасность вас не беспокоит, или если вы запускаете этот JavaScript с сервера с чем-то вроде Node.js, то вам «просто» нужно сделать PUT, как сделал бы Runner формы. Чтобы точно знать, как должен выглядеть XML, который нужно отправить, я бы выполнил операцию в Form Runner и посмотрел, какие данные отправляются на постоянный уровень с помощью HTTP-анализатора, такого как HTTP Scoop или Wireshark .

...