如何以 mock server 的方式本地启动 SAP UI5 应用,使它不连接服务器端 OData 服务
生活随笔
收集整理的这篇文章主要介绍了
如何以 mock server 的方式本地启动 SAP UI5 应用,使它不连接服务器端 OData 服务
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
我们在做 SAP UI5 开发时,在视图逻辑没有开发完毕时,往往不希望连接服务器端的 OData 服务进行联调,而仅仅连接本地端的测试数据。
本文介绍如果启动本地 mock server,将 SAP UI5 项目工程里提前准备好的测试数据,渲染到 SAP UI5 应用的视图上。
本文介绍具体方法。
sap.ui5 区域里,定义该应用的根视图 (rootView)为 SmartTable:
controller 什么都不用实现:
component.js 也不用实现:
主要代码:
sap.ui.getCore().attachInit(function() {sap.ui.require(["sap/ui/demo/smartControls/test/service/server"], function(server) {server.init();new sap.ui.core.ComponentContainer({name: "sap.ui.demo.smartControls",height: "100%"}).placeAt("content");});});Mock server 的核心逻辑在这个 server.js 里:
使用的是 SAP UI5 提供的标准 Mock server,位于目录 sap/ui/core/util/MockServer 下面。
sap.ui.define(["sap/ui/core/util/MockServer" ], function (MockServer) {"use strict";return {init: function () {var oMockServer = new MockServer({rootUri: "/here/goes/your/serviceUrl/"});MockServer.config({autoRespond: true, autoRespondAfter: 1000});var sPath = jQuery.sap.getModulePath("sap.ui.demo.smartControls.test.service");oMockServer.simulate(sPath + "/metadata.xml", sPath);oMockServer.attachAfter(sap.ui.core.util.MockServer.HTTPMETHOD.GET, function(oEvent) {var oXhr = oEvent.getParameter("oXhr");var aResultFiltered = [];var fGetUriParameter = function(sUri, sKey) {var sValue = "";var aParams = decodeURIComponent(sUri).replace("?", "&").split("&");aParams.some(function(sPairs) {if (sKey === sPairs.split("=")[0]) {sValue = sPairs.split("=")[1];return true;}});return sValue;};var sSearchText = fGetUriParameter(oXhr.url, "search");if (sSearchText) {var aResults = oEvent.getParameter("oFilteredData").results;aResults.forEach(function(oEntry) {if (JSON.stringify(oEntry).indexOf(sSearchText) > -1) {aResultFiltered.push(oEntry);}});oEvent.getParameter("oFilteredData").results = aResultFiltered;}});oMockServer.start();}}; });为了配合 mock server 工作,本地必须保存一个 metadata.xml:
同时将本地测试数据,以 json 文件的形式维护在工程里:
文件名必须为 metadata.xml 里定义的同名 entitySet:
最后本地读取 mock server 返回的测试数据,应用界面如下:
更多Jerry的原创文章,尽在:“汪子熙”:
总结
以上是生活随笔为你收集整理的如何以 mock server 的方式本地启动 SAP UI5 应用,使它不连接服务器端 OData 服务的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: BFD原理与配置
- 下一篇: 一个典型的加了 SAP 注解的 ODat