繁体   English   中英

在Web应用程序中播放2.2返回Json响应

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM