将所有API端点列表放入文件并在sapui5应用程序中使用的最佳实践

将所有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

我有很多API端点,如下所示:

基本URL 创建客户 获得客户 ……等等

要在
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"
          }
       }
       ...
    }