gpt4 book ai didi

java - 在 Play 框架中的另一个 Controller 中重用一个 Controller 的结果

转载 作者:行者123 更新时间:2023-12-01 04:36:53 25 4
gpt4 key购买 nike

如果这个问题已经得到解答,我深表歉意 - 我已经查看过但找不到任何内容。

使用 Play 框架,我定义了两个 Controller - 一个是返回 JSON 的公共(public) API,另一个是该 API 的使用者,它将 JSON 呈现为 HTML。例如。我的路线文件如下所示:

GET     /foos       controllers.App.foos() #produces HTML
GET /api/foos controllers.API.foos() #produces JSON

该项目的一个要求是我们的数据只能通过我们的公共(public) 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 框架的新手,也许我会犯这个错误,并且有更简单/更好的方法来做到这一点?

提前非常感谢,詹姆斯

最佳答案

最简单的方法是公开底层方法。

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();
}
}

关于java - 在 Play 框架中的另一个 Controller 中重用一个 Controller 的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17216451/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com