我用
yarn start 本地启动一个 SAP Fiori Elements 应用,在 Chrome 开发者工具 network 面板,观察到一个 OData metadata 请求的 url 如下:
http://localhost:8080/sap/opu/odata/sap/SEPMRA_PROD_MAN/$metadata?sap-value-list=none&sap-language=EN
这个 OData 服务名称
SEPMRA_PROD_MAN,运行时是如何决定出来的?
查看
Component.js 文件里的函数
Component._createManifestModels:
我们查看变量
mModels, 发现有三个字段:
其中 ""字段的值,来自
manifest.json 文件的
models 区域的同名字段:
dataSource 的值指向
mainService,后者的
uri 字段就是 Fiori Elements 应用运行时,发起 OData 元数据请求的 url:
在 SAP UI5 应用中,
manifest.json文件是一个重要的配置文件。它充当了应用的描述符,定义了应用的元数据、模型、服务、i18n(国际化)等等。我们可以将其看作是一个集中的配置中心,其中所有的配置都在一个地方,使得代码更容易维护,也更容易理解。
在
manifest.json文件中,
dataSources部分是非常重要的一部分,它定义了应用如何连接到后端服务。这个区域可以声明一个或者多个数据源,每一个数据源对应一个后端服务。这些服务可以是 OData 服务,也可以是其他类型的服务。
当我们在
manifest.json文件中定义了数据源后,我们可以在应用的其他部分通过这个数据源的名称来引用这个服务,而不需要记住具体的 URL。这样做的好处是,如果服务的 URL 发生变化,我们只需要在一个地方更新它,而不需要搜索整个代码库来找到所有使用这个服务的地方。
下面是一个
manifest.json文件中
dataSources区域的例子:
在上面的例子中,我们定义了两个数据源,它们的名字分别是
mainService和
secondService。每个数据源都有一个
uri属性,这个属性定义了服务的 URL。
type属性定义了服务的类型,这里我们使用的是 OData 服务。
settings对象包含了服务的其他配置,比如 OData 的版本。
定义了数据源之后,我们就可以在应用的其他部分使用这个数据源了。例如,我们可以在
models区域定义一个模型,并且将这个模型关联到一个数据源:
在上面的例子中,我们定义了两个模型,它们分别关联到了我们之前定义的两个数据源。这样,当我们在应用中使用这两个模型时,SAP UI5 会自动的使用对应的数据源连接到后端服务。
总的来说,
manifest.json文件中的
dataSources区域是用来定义应用如何连接到后端服务的。它使得服务的配置集中在一个地方,使得代码更易于维护,也更易于理解。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/24475491/viewspace-2965875/ ,如需转载,请注明出处,否则将追究法律责任。