如何以 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原理与配置
- 下一篇: 关于代理模式PAC和全局模式的区别「建议