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