将Orbeon用作REST服务的最佳方法

将Orbeon用作REST服务的最佳方法,orbeon,xforms,exist-db,Orbeon,Xforms,Exist Db,我已经在existdb中运行了一组由XQuery自动生成的XForms。我有没有办法调用Orbeon提供的REST服务,该服务运行在一个单独的tomcat服务器上,可以将XForms文件转换成HTML,并显示在web浏览器中 换句话说,我想做一些类似的事情: xquery version "1.0"; ... let $my-xforms-file := local:my-generate-xforms($spec-file) let $orbeon-rendered-xforms := htt

我已经在existdb中运行了一组由XQuery自动生成的XForms。我有没有办法调用Orbeon提供的REST服务,该服务运行在一个单独的tomcat服务器上,可以将XForms文件转换成HTML,并显示在web浏览器中

换句话说,我想做一些类似的事情:

xquery version "1.0";
...
let $my-xforms-file := local:my-generate-xforms($spec-file)
let $orbeon-rendered-xforms := httpclient:post('http://localhost/tomcat/orbeon/getpost',  $my-xforms-file)
return $html-file
我想要的实际上只是一个用于XForms的呈现转换服务,它在文档体中获取一个包含XForms的HTTP POST,并返回我可以使用web浏览器呈现的内容


Orbeon中是否已经内置了执行此操作的组件?我很高兴记录这一点,提供一个XQuery模块来支持它并与其他人共享。

有一个REST服务用于使用Orbeon forms runner,但它使用HTTP GET,而不是HTTP POST

该服务作为forms runner“Sandbox”的一部分提供。以下是一个示例:

如果Tomcat在端口8081(不是默认端口)上运行,并且eXist在端口8080上运行,则以下操作将起作用:

http://localhost:8081/orbeon/xforms-sandbox/run?url=http://localhost:8080/exist/apps/grants/orbeon-tests/01-min.xml
沙盒还有一种从文件系统获取数据的方法

您无法从菜单中形成runner standbox。要到达该位置,您必须手动将以下URL放入浏览器:

http://localhost:8081/orbeon/xforms-sandbox/

有一个REST服务用于使用Orbeon forms runner,但它使用HTTP GET,而不是HTTP POST

该服务作为forms runner“Sandbox”的一部分提供。以下是一个示例:

如果Tomcat在端口8081(不是默认端口)上运行,并且eXist在端口8080上运行,则以下操作将起作用:

http://localhost:8081/orbeon/xforms-sandbox/run?url=http://localhost:8080/exist/apps/grants/orbeon-tests/01-min.xml
沙盒还有一种从文件系统获取数据的方法

您无法从菜单中形成runner standbox。要到达该位置,您必须手动将以下URL放入浏览器:

http://localhost:8081/orbeon/xforms-sandbox/

事实上,我认为这是更好的方法。也就是说,浏览器不会点击你的应用程序(在eXist中是你自己的XQuery)并将XForms推送到Orbeon进行处理,而是点击Orbeon从你的应用程序(在本例中是eXist)中提取表单。使用XForms沙盒是一种快速的方法,但您也可以使用XPL和Orbeon中的页面流来开发自己的自定义逻辑,而Orbeon也有类似的功能。您也可以从沙盒应用程序中获得灵感,并通过POST支持创建自己的沙盒。事实上,我认为这是一种更好的方法。也就是说,浏览器不会点击你的应用程序(在eXist中是你自己的XQuery)并将XForms推送到Orbeon进行处理,而是点击Orbeon从你的应用程序(在本例中是eXist)中提取表单。使用XForms sandbox是使其工作的快速方法,但您也可以使用XPL和Orbeon中的页面流开发自己的自定义逻辑,这样做类似。您也可以从sandbox应用程序中获得灵感,并通过POST支持创建自己的逻辑。