SAP UI5學習筆記之(十二)虛擬伺服器配置-Mock Server Configuration
在開發和測試中,我們一般不會使用生產用的真實的遠端伺服器,因為這樣可能對真實伺服器增加負載,而且很不安全。
為了測試我們的程式我們可以使用SAPUI5提供的Mock Server來模擬一個伺服器。
Walkthrough中的Step27詳細講解了Mock Server的實現過程。
Walkthrough Step27連結:https://sapui5.netweaver.ondemand.com/sdk/#/topic/bae9d90d2e9c4206889368f04edab508
但是我用例子的程式碼測試發現畫面載入的資料不是Mock資料,而是Step26OData遠端service的資料。
我試著改了webapp/localService/mockserver.js這個檔案裡下面這句話:
rootUri: "https://services.odata.org/V2/Northwind/Northwind.svc/"
改成:
rootUri: "/destinations/northwind/V2/Northwind/Northwind.svc/"
測試發現數據正常顯示為Mock資料了。
原因分析
其實在Step27的後面描述中我們也能看到,mockserver.js的init方法中,
首先建立了一個MockServer例項,這個例項必須與真實server相同的URI,可以是絕對路徑,也可以是我們在manifest.json中配置的datasources裡的相對路徑。
然後模擬遠端訪問的響應時間給Mock Sever配置一個延遲。
最後使用MockSever的simulate方法使得請求的資料由我們的MockServer提供,而不是由真實服務提供。
由於Step26執行時出現同源策略違反導致資料載入不上,我們把manifest.json中的datasources裡的uri配置為相對路徑(SAP Cloud Platform Cockpit中的Destination),
所以在Step27時兩個URI不是完全一致的,導致Mock失敗。
解決方案
只需將這兩個URI改成一致就好了。
都是"https://services.odata.org/V2/Northwind/Northwind.svc/",
或者都是 "/destinations/northwind/V2/Northwind/Northwind.svc/"。