簡體   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