[英]Play 2.2 Return Json Response within Web Application
有没有一种方法可以对同一应用程序上的服务进行RESTful请求并显示其响应? 我创建了一个具有要填写的表单参数的UI。 当用户单击“提交”时,我希望将响应嵌入到同一页面中,并以json的形式显示给用户。 我也希望它能够在外部被调用,因为它将是一个宁静的API。
我可以在路由文件中定义返回一些json的路径,但是我不确定如何从应用程序本身使用它。
我希望这很清楚。 如有必要,我很乐意提供更多详细信息。
好。 首先,让我们考虑一下我们具有为我们生成JSON响应的路由和控制器。
GET /foo controllers.FooController.foo
object FooController extends Controller
{
.....
implicit val fooWrites = Json.writes[Foo]
def foo = Action {
Ok(Json.toJson(Foo)).as("application/json")
}
}
然后,我们可以使用页面中的ajax来获取响应:
<script>
......
$.get("@routes.FooController.foo")
.done(function(data){
//do something with recieved data
});
</script>
或者,如果您想在Play App中使用数据,则可以使用WS lib。 例如。
对象FooController扩展了控制器{
....
def fooConsumerController = Action.async {
val fooJsonResultFuture =
WS.url("http://localhost:9000/foo").get().map(_.body)
.....
fooJsonResultFuture.map { json =>
// do something with this result
Ok(.....)
}
}
}
从您的问题尚不清楚,您想要实现什么行为,但是我希望它将帮助您找出一些方向。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.