UI5ServerExtensibility(扩展性)使开发者能够增强UI5Server的功能。开发人员可能希望以不同方式处理请求。例如,在响应中添加各种header(最典型的应用之一是避免原生SAPUI5应用访问S/4HANAOData服务时遇到的跨域错误)或者以特定方式解析POST请求的数据。为此,我们可以将自定义中间件实现插入到UI5服务器模块(其内部仍然基于express服务器实现)。UI5社区创建了许多自定义中间件包,您可以将它们集成到您的项目中。它们通常以ui5-middleware-为前缀,以便在npm注册表中轻松搜索它们。在项目ui5.yaml文件中,您可以定义额外的服务器中间件模块,这些模块将在服务器收到请求时执行。此配置仅影响在此项目中启动的服务器。任何依赖项中定义的自定义中间件配置将被忽略。这是一个示例:specVersion:"2.6"type:applicationmetadata:name:my.applicationserver:customMiddleware:-name:myCustomMiddlewaremountPath:/myappafterMiddleware:compressionconfiguration:debug:true在上面的示例中,中间件压缩已包含为UI5服务器包含标准中间件。为应用程序my.application提供服务时,服务器会在执行标准中间件压缩后调用自定义中间件myCustomMiddleware。SAPUI5工具支持提供可选配置参数以直接传递给自定义中间件实现。可以提供可选的mountPath来调用中间件功能。它将传递给app.use调用。语法:app.use([path,]callback[,callback...])在指定路径挂载指定的中间件函数或函数:当请求路径的基路径与path匹配时执行中间件函数。其中path是调用中间件函数的路径,可以是以下任意一种:代表路径的字符串。路径模式。匹配路径的正则表达式模式。以上任何一项的组合数组。
