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的原創文章,盡在:“汪子熙”:
 
總結
以上是生活随笔為你收集整理的orbeon form 的架构简介 - 如何访问用户通过 form 存储的数据的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 在意大利恢复上线,但 OpenAI 的麻
- 下一篇: 太吾绘卷怎么存档
