1
如果已經得到回答,請致歉 - 我看了一下,找不到任何東西。在Play框架中重新使用另一個控制器中的控制器的結果
使用Play框架,我已經定義了兩個控制器 - 一個是公共API返回JSON,一個是這個API,它介紹了JSON作爲HTML的消費者。例如。我的路線文件如下所示:
GET /foos controllers.App.foos() #produces HTML
GET /api/foos controllers.API.foos() #produces JSON
該項目的一個要求是我們的數據只能通過我們的公共API訪問。因此,我想要實現的方式是讓App.foos()
調用API.foos()
,解析JSON結果,並將其傳遞給要呈現的模板。例如:
public App extends Controller {
public static Result foos() {
Result result = API.foos();
// TODO: get the JSON out of the result object
}
}
誰能告訴我如何從結果對象中提取JSON嗎?我可以使用((SimpleResult)result.getWrappedResult()).body()
作爲枚舉器獲取對象的主體,但我仍然不清楚我如何才能擺脫JSON。
因爲我是新來的遊戲框架,也許我會對此錯誤的,有一個更簡單/更好的方式來做到這一點?
很多感謝, 詹姆斯
謝謝您的回答。不幸的是,我們需要直接使用API,所以我認爲這可能不被允許。我們決定暫時放棄[網絡服務](http://www.playframework.com/documentation/2.1.1/JavaWS)路由 - 這可能實際上更可取,因爲公共API可能會被物理分離來自消費者的未來。謝謝! – jrwilliams
使用Web服務確實是您的最佳選擇。處理結果的內容非常棘手,因爲身體不是界面的一部分。你將不得不匹配各個子類(或實現),未來的變化可能會輕易破壞它。我認爲你是通過HTTP進行正確的調用。 – EECOLOR