将所有API端点列表放入文件并在sapui5应用程序中使用的最佳实践
我有很多API端点,如下所示: 基本URL 创建客户 获得客户 ……等等 要在将所有API端点列表放入文件并在sapui5应用程序中使用的最佳实践,sapui5,Sapui5,我有很多API端点,如下所示: 基本URL 创建客户 获得客户 ……等等 要在controller.js中使用它们,我将它们存储在i18n.properties文件中(我这样做是否正确?) 并称为: var url1=this.getView().getModel("i18n").getResourceBundle().getText("baseURL"); url2 = url2+this.getView().getModel("i18n").getResourceBundle().getTe
controller.js
中使用它们,我将它们存储在i18n.properties
文件中(我这样做是否正确?)
并称为:
var url1=this.getView().getModel("i18n").getResourceBundle().getText("baseURL");
url2 = url2+this.getView().getModel("i18n").getResourceBundle().getText("getCustomer");
我猜会有另一个文件,我们将在其中存储所有API的列表,如上述场景所示
在sapui5应用程序中,这些API端点存储并在控制器或应用程序中使用,这通常是如何实现的
举一个示例来说明哪些可能存储API端点,以及如何在控制器中调用API,这将非常有用
感谢您的帮助 我通常喜欢将它们保存在“manifest.json”文件中(对于UI5应用程序也称为应用程序描述符文件) 在这里,我在sap.app命名空间的dataSources属性中创建了一个条目:
"sap.app": {
"dataSources": {
"apiData": {
"uri": "api/folder/path",
"uri": "api/folder/path2",
"uri": "api/folder/path3"
}
}
},
在应用程序代码中,我可以通过获取组件的元数据来检索这些值:
apiSettings = sap.ui.getCore().getComponent("myAppComponent").getManifestEntry('sap.app').dataSources.apiData
一种更优雅的方法是在manifest中将它们定义为数据源,但也可以在sap.ui5命名空间中的models属性下定义:
"sap.app": {
"dataSources": {
"api": {
"uri": "api.json",
"type": "REST",
"settings": { }
}
}
},
...
"sap.ui5": {
...
"models": {
"api": {
"type": "sap.ui.model.json.JSONModel",
"uri": "api.json"
}
}
...
}
通过这种方式,UI5将在应用程序加载时从名为api.JSON的文件创建JSON模型,您可以使用以下方法读取:
apiSettings=sap.ui.getCore().getComponent(“lab”).getModel('api').getData()
有关应用程序描述符的详细信息,请查看此链接:
这是一个非常有用的信息,感谢分享链接伴侣,我想出了一些不同的方法,希望分享链接,这是一个好方法吗,请让我知道,对于我的应用程序,我喜欢尽可能长时间地将配置信息与控制器逻辑分开,因为它可以通过只部署设置文件(在我的示例中是manifest.json或api.json)来重新配置应用程序。但是如果您认为您不需要那个用例,那么您的方法也会起作用。
"sap.app": {
"dataSources": {
"apiData": {
"uri": "api/folder/path",
"uri": "api/folder/path2",
"uri": "api/folder/path3"
}
}
},
apiSettings = sap.ui.getCore().getComponent("myAppComponent").getManifestEntry('sap.app').dataSources.apiData
"sap.app": {
"dataSources": {
"api": {
"uri": "api.json",
"type": "REST",
"settings": { }
}
}
},
...
"sap.ui5": {
...
"models": {
"api": {
"type": "sap.ui.model.json.JSONModel",
"uri": "api.json"
}
}
...
}