乐趣区

关于form:orbeon-form-的架构简介-如何访问用户通过-form-存储的数据

从用户的视角登程,Orbeon Forms 架构很简略。它由 Form Builder(表单编辑器)和 Form Runner(表单运行时)组成,与数据库(长久层)对话。此外,与用户管理系统的集成也是一种常见的场景。

您曾经应用 Form Builder 创立了表单,公布了这些表单,并设置了 Orbeon Forms,以便它将表单捕捉的数据存储在您的关系数据库中。当初,您的另一个应用程序如何拜访这些数据?

有三种设计形式。

  • 当用户单击表单中的提交按钮时,让 Orbeon 表单将数据发送到您的应用程序。
  • 您的应用程序为此调用 Orbeon Forms 提供的 REST API。
  • 您的应用程序间接拜访 Orbeon Forms 保留的数据库中的数据。

上面逐个介绍。

办法 1. Send data on submit

在大多数状况下,这是最好的抉择,也是咱们举荐的抉择。实质上,您设置 Orbeon Forms,以便当用户填写表单并提交时,Orbeon Forms 会将用户输出的数据发送到您的应用程序。您的应用程序能够应用这些数据做任何它想做的事件,如果须要,在对 Orbeon Forms 的响应中,您的应用程序能够通知 Orbeon Forms 用户接下来应该转到哪个页面。

当用户单击在 Form Builder 中创立的表单上的提交按钮(或就此而言表单底部的任何其余按钮)时,将运行一个流程。实质上,一个流程定义了一系列要执行的操作,其中之一能够是将数据发送到您的应用程序。

目前,流程定义在您的 properties-local.xml 中。

在您的流程中,您将应用 send() 操作来批示 Orbeon Forms 将用户输出的数据公布到您抉择的 URL。

你的应用程序能够用它接管的数据做它想做的事件:在数据库中执行一些操作,调用服务等。

如果您将 replace = “all” 参数传递给 send(),那么您的应用程序在 HTTP 响应中发送回 Orbeon Forms 的内容将被 Orbeon Forms 发送 / 代理回浏览器。

这容许您发送自定义确认页面,或重定向到用户接下来应该转到的另一个页面或表单。

办法 2. Call the REST API

您的第二个抉择是让您的应用程序调用 Orbeon Forms 持久性 API 来检索 Orbeon Forms 保留在数据库中的数据。这是一个简略的 REST API,您须要首先调用搜寻 API 以列出应用特定表单提交或保留的数据,而后调用 CRUD API 以检索您感兴趣的任何数据。

如前所述,Orbeon Forms 提供的 API 非常简单,但在调用此类 API 时须要记住一些简单状况,这通常会使上述选项 1 更可取:

  • 您正在决定何时调用 API。您很可能心愿定期(例如每小时或每天)执行此操作,以解决提交给零碎的任何新数据。这意味着您须要有一个相似 cron 的基础设施来定期执行该工作,并且您的应用程序不会实时理解新数据。
  • 假如您的应用程序只对解决新数据感兴趣,它须要以某种形式跟踪它曾经解决的数据。
  • 出于平安起因,开箱即用的 REST API 拜访被阻止。您能够在 Orbeon Forms 级别齐全凋谢对 API 的拜访,并通过其余形式(例如过滤器)爱护它,或者通过受权服务在 API 的调用者和 Orbeon Forms 之间设置一些身份验证。

办法 3. Accessing the database

根据上述选项 2,拜访数据库中的数据而不是通过 API 会减少降级 Orbeon Forms 时须要更改代码的可能性,因为 Orbeon 表的格局比 API 更可能更改。只管有此正告,但咱们发现客户拜访数据库中的数据通常比通过 API 拜访更实用。

更多 Jerry 的原创文章,尽在:” 汪子熙 ”:

退出移动版