JAX-RS response builder explained

The JAX-RS resource methods return type is generally based on the entity being operated on. For example, getDepartment returns the Department type. This return value is wrapped by JAX-RS in the default response message body and response status; additional metadata like content length, media type are added by the default JAX-RS implementation provider, which is not transparent to us. If we intend to explicitly control the response sent back to the client, the resource methods can return an instance of javax.ws.rs.core.Response. The Response class is an abstract class which contains methods required to get access to the different attributes of Response sent back to the client. Listed here are a few key methods of Response class:

Method

Purpose

getCookies

Get cookies set on the response message.

getDate

Get the response message date.

getEntity

Get the response message entity object.

In case of HTTP, this will be the entity object set in the HTTP message body.

getHeaders

Get a view of the response headers and their object values.

getHeaderString

Get a message header value as a string value.

getLength

Get the content length value.

getMediaType

Get the media type of the message entity.

getStatus

Get the status code associated with the response.

getStatusInfo

Get the complete status information associated with the response.

 

Instances of Response object cannot be created directly; instead they are created from javax.ws.rs.core.Response.ResponseBuilder instances returned by one of the following static helper methods of the Response  class:

Method

Purpose

ok

Create a new ResponseBuilder with the OK status.

status

Create a new ResponseBuilder with the supplied status.

serverError

Create a new ResponseBuilder with the server error status.

temporaryRedirect

Create a new ResponseBuilder for a temporary redirection to the specified URI.

noContent

Create a new ResponseBuilder for an empty response.

notAcceptable

Create a new ResponseBuilder for a not acceptable response.

notModified

Create a new ResponseBuilder with a not-modified status.

 

The javax.ws.rs.core.Response.ResponseBuilder class provides easy-to-use utility methods for creating the javax.ws.rs.core.Response instance by using a builder pattern. ShoppingService illustrates the usage of javax.ws.rs.core.Response.ResponseBuilder to construct  the javax.ws.rs.core.Response with the OK status:

@Path("/shopping")
public class ShoppingService {
@GET
public Response productExists((@PathParam("productId") String productId) {
NewCookie cookie = new NewCookie("shopping-id", "uid");
//Check if the specified product exists
ResponseBuilder builder = Response.ok("Y", "text/plain");
return builder.cookie(cookie).build();
}
}
javax.ws.rs.core.NewCookie is used to create a new HTTP cookie to be sent as part of javax.ws.rs.core.Response.
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.139.80.209