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...])
在指定路径挂载指定的中间件函数或函数:当请求路径的 base 路径与 path 匹配时执行中间件函数。
其中 path 为调用中间件函数的路径,可以是以下任何一种:
- 表示路径的字符串。
- 路径模式。
- 匹配路径的正则表达式模式。
- 以上任何一种组合的数组。