2017-09-18 88 views
0

在我的SAPUI5應用程序中,我們試圖從REST服務獲取數據。我在SCP駕駛艙創建了目的地,並在neo-app.json文件中提到了相同的目的地。我成功地通過AJAX調用獲取數據。我的問題是:這是從REST服務獲取數據的唯一方法。因爲對於Northwind服務我沒有使用任何AJAX調用。我只是在neo-app.json文件中提到了我的目標名稱,在我的manifest.json中創建了一個數據源,並使用我創建的模型的數據源。但是我不能爲我的REST服務做同樣的事情。在創建數據源時,我收到500內部服務器錯誤。REST JAVA服務和SAPUI5

感謝&問候, MS

回答

2

羅斯文服務是OData服務粘附到開放數據協議。所以你可以創建一個可用於在UI5中創建oData模型的數據源。 UI5在內部使用data.js,它提供了便捷的方法來執行服務請求,如讀取,更新,插入或刪除,因此您不必執行任何AJAX調用並繼續操作URL。當您使用任何UI5數據模型(oData/JSON/XML/ResourceModel)時,綁定和聚合也會由UI5自動管理。

如果您的基於JAVA的服務實現oData協議,可以使用它類似於Northwind服務。如果它以JSON或XML的形式提供響應,則可以使用JSON模型或XML模型。但是,如果響應採用其他格式,則必須使用AJAX調用,解析數據&最好將其轉換爲JSON。然後您可以使用它與JSON模型。

您必須添加目的地在新app.json

{ 
      "path": "/comments", 
      "target": { 
      "type": "destination", 
      "name": "JAVAJSON", 
      "entryPath": "/comments" 
      }, 
      "description": "JAVA based REST API" 
} 

然後在你的manifest.json

"models": { 
    "":{ 
    ... 
    ... 
    } 
    "DataModel": { 
    "type": "sap.ui.model.json.JSONModel", 
    "settings": {}, 
    "uri": "/comments", 
    "preload": false 
    } 
} 
+0

斯蒂芬嗨創建一個模型,謝謝您的答覆。我們的服務以JSON格式返回輸出。我可以通過手動創建數據源來創建模型嗎? –

+0

是的,你可以,檢查我更新的答案 –

+0

所以我的網址是這樣的: https:// <>/<服務名稱> /初始/容器。我使用url創建了一個目的地:https:// <>/<服務名稱>。 { 「路徑」: 「/ vesselInformation」, 「目標」:{ 「類型」: 「目的地」, 「名」: 「lsITSVesselInformation」 }, 現在我創建了一個模型,如你所說: \t「的DataModel「:{ 」類型「: 」sap.ui.model.json.JSONModel「, 」設置「:{}, 」URI「: 」/ vesselInformation「, 」預壓「:假 } } 那麼如何閱讀模型實體(船隻)。是oModel.read();可能在這裏? –