7.2. Building Responses 构建响应

有时有必要返回响应 HTTP 请求的额外信息。这些信息可能是使用 ResponseResponse.ResponseBuilder 来构建并返回。例如,一个常见的RESTful 模式创建一个新的资源是支持一个 POST 请求,返回一个 201(Created)状态码和其值是新创建的资源的 URI 的 Location header 。可能实现如下:

Example 7.2. Returning 201 status code and adding Location header in response to POST request

  1. @POST
  2. @Consumes("application/xml")
  3. public Response post(String content) {
  4. URI createdUri = ...
  5. create(content);
  6. return Response.created(createdUri).build();
  7. }

在上面没有返回产生的表示,这可以通过建立一个实体作为响应的一部分来实现:

Example 7.3. Adding an entity body to a custom response

  1. @POST
  2. @Consumes("application/xml")
  3. public Response post(String content) {
  4. URI createdUri = ...
  5. String createdContent = create(content);
  6. return Response.created(createdUri).entity(Entity.text(createdContent)).build();
  7. }

响应构建提供其他功能,如设置实体标签和最后修改日期的表示。