You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在manifest.json中创建带Authorization头的OData模型并绑定XML视图

嘿,这个需求完全可以只靠manifest.json来实现,不用在控制器里写任何显式的GET请求代码!我来给你详细拆解步骤:

1. 在manifest.json中配置带Authorization头的OData模型

核心是在manifest.json的sap.ui5节点下,同时配置数据源(dataSources)和模型(models),重点是给数据源加上必填的请求头:

{
  "sap.ui5": {
    "dataSources": {
      "myODataService": {
        "uri": "https://your-actual-odata-service-url/",
        "type": "OData",
        "settings": {
          "odataVersion": "2.0", // 按需改成3.0或4.0,匹配你的服务版本
          "headers": {
            // 这里填入你的Authorization头内容
            // 示例1:Bearer令牌
            "Authorization": "Bearer your-static-access-token-here",
            // 示例2:Basic认证(需提前把username:password做Base64编码)
            // "Authorization": "Basic dXNlcjpwYXNzd29yZA=="
          }
        }
      }
    },
    "models": {
      "": { // 设为默认模型,XML视图可直接绑定无需指定模型名
        "dataSource": "myODataService",
        "settings": {
          "defaultBindingMode": "TwoWay", // 根据业务需求选择绑定模式
          "useBatch": false // 如果你的服务不支持批量请求,建议设为false
        }
      }
    }
  }
}

这里的关键是dataSources里的headers配置——所有通过这个模型发起的请求(包括XML视图绑定自动触发的GET请求),都会自动携带这个Authorization头,完全不需要手动写请求代码。

2. 在XML视图中直接绑定模型数据

配置好模型后,XML视图可以直接绑定数据,UI5会自动发起带授权头的请求拉取数据:

<mvc:View xmlns:mvc="sap.ui.core.mvc" xmlns="sap.m">
  <!-- 直接绑定默认模型的Products实体集 -->
  <List items="{/Products}" busyIndicatorDelay="0">
    <StandardListItem 
      title="{ProductName}" 
      description="{Category/CategoryName}" 
    />
  </List>
</mvc:View>
3. 动态授权头的优化方案(几乎不用控制器代码)

如果你的Authorization令牌是动态获取的(比如从登录接口返回),虽然不能完全零控制器代码,但只需要在控制器的init方法里更新模型头即可,依然不用写显式的GET请求:

onInit: function() {
  // 获取配置好的默认模型
  const oODataModel = this.getView().getModel();
  // 假设你已经通过登录流程拿到了动态令牌(比如存在localStorage)
  const sDynamicToken = localStorage.getItem("userAccessToken");
  // 更新模型的请求头
  oODataModel.setHeaders({
    "Authorization": `Bearer ${sDynamicToken}`
  });
}

这样后续视图绑定自动发起的所有请求,都会带上这个动态更新的授权头。

内容的提问来源于stack exchange,提问作者Nandan Chaturvedi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 08:32:52