Actions
We have talked about routes, and how to pass parameters to controllers. Let's now talk about what we can do with the controller.
The method defined in the route must return a play.api.mvc.Action instance. The Action type is a thin wrapper around the type Request[A] => Result, where Request[A] identifies an HTTP request and Result is an HTTP response.
Composing the response
An HTTP response, as we saw in Chapter 7, Web APIs, is composed of:
the status code (such as 200 for a successful response, or 404 for a missing page)
the response headers, a key-value list indicating metadata related to the response
The response body. This can be HTML for web pages, or JSON, XML or plain text (or many other formats). This is generally the bit that we are really interested in.
The Play framework defines a play.api.mvc.Result object that symbolizes a response. The object contains a header attribute with the status code and the headers, and a body attribute containing the body.
The simplest way to generate...