道歉,如果已经回答了这个问题 - 我已经看了一眼,找不到任何东西。
使用Play框架,我定义了两个控制器 - 一个是返回JSON的公共API,另一个是此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。
因为我是Play框架的新手,也许我会解决这个错误,并且有更简单/更好的方法来做到这一点?
非常感谢, 詹姆斯
答案 0 :(得分:0)
最简单的方法是公开底层方法。
public Api extends Controller {
public static Result foos() {
Ok(foosJson());
}
public static JsValue foosJson() {
// ...
}
}
public App extends Controller {
public static Result foos() {
JsValue json = API.foosJson();
}
}