UI5 伺服器可擴充性(Extensibility)使開發人員能夠增強 UI5 伺服器的功能。
開發人員可能希望以不同的方式處理請求。 例如,将各種标頭添加到響應中(一個最典型的應用就是避免本地 SAP UI5 應用通路 S/4HANA OData 服務時遇到的跨域錯誤)或以特定方式解析 POST 請求的資料。 為此,我們可以将自定義中間件實作插入 UI5 伺服器子產品(該子產品内部仍然基于 express server 實作)。
UI5 社群已經建立了許多自定義中間件包,您可以将它們內建到您的項目中。 它們通常以
ui5-middleware-
為字首,以便在 npm registry 中輕松搜尋它們。
在項目 ui5.yaml 檔案中,您可以定義其他伺服器中間件子產品,這些子產品将在伺服器接收到請求時執行。 此配置僅影響在此項目中啟動的伺服器。 任何依賴項中定義的自定義中間件配置都将被忽略。
下面是一個例子:
specVersion: "2.6"
type: application
metadata:
name: my.application
server:
customMiddleware:
- name: myCustomMiddleware
mountPath: /myapp
afterMiddleware: compression
configuration:
debug: true
在上面的示例中,中間件
compression
已經作為标準中間件被 UI5 伺服器包含在内。 在為應用程式 my.application 提供服務時,伺服器會在标準中間件
compression
執行後,調用自定義中間件 myCustomMiddleware。
SAP UI5 Tools 支援提供可選的配置參數,直接傳遞給自定義中間件實作。
可以提供調用中間件函數的可選 mountPath。 它将被傳遞給 app.use 調用。
文法:
app.use([path,] callback [, callback...])
- 表示路徑的字元串。
- 路徑模式。
- 比對路徑的正規表達式模式。
- 以上任何一種組合的數組。