Ratpack has the class ratpack.handling.ReponseTimer
which adds a header with the name X-Response-Time
to the response. The value is the time spent in code from when the request comes in and the response is sent out. ResponseTimer
is a handler we can add in our application. Alternatively we can use the static method decorator
to get a handler decorator. With a handler decorator we can use the registry to add handler logic in our application.
First we use the ResponseTimer
as a handler:
@Grab("io.ratpack:ratpack-groovy:1.1.1") import ratpack.handling.ResponseTimer import static ratpack.groovy.Groovy.ratpack ratpack { handlers { // Add ResponseTimer for // all requests. all(new ResponseTimer()) get { render "Ratpack rocks!" } } }
We get the same result if we add the handler decorator via the registry:
@Grab("io.ratpack:ratpack-groovy:1.1.1") import ratpack.handling.ResponseTimer import static ratpack.groovy.Groovy.ratpack ratpack { bindings { // Add ResponseTimer for // all requests. bindInstance(ResponseTimer.decorator()) } handlers { get { render "Ratpack rocks!" } } }
When we make a request and look at the response header we see a header with the name X-Response-Time
:
$ http localhost:5050 HTTP/1.1 200 OK X-Response-Time: 1.00000 connection: keep-alive content-encoding: gzip content-type: text/plain;charset=UTF-8 transfer-encoding: chunked Ratpack rocks! $
Written with Ratpack 1.1.1.