搜索

48.3. 微调应用程序响应

download PDF

48.3.1. 构建响应的基础知识

概述

当资源方法返回普通 Java 结构时,RESTful 服务通常需要更精确地控制返回到消费者的响应。JAX-RS 响应 类允许资源方法对发送至使用者的返回状态具有一些控制,并在响应中指定 HTTP 消息标头和 cookies。

响应 对象嵌套代表返回到使用者实体的对象。响应 对象使用 ResponseBuilder 类作为工厂来实例化。

ResponseBuilder 类还有许多用于操作响应元数据的方法。例如,ResonseBuilder 类包含设置 HTTP 标头和缓存控制指令的方法。

响应和响应构建器之间的关系

响应 类具有受保护的构造器,因此无法直接实例化。它们是使用 Response 类括起的 ResponseBuilder 类创建的。response Builder 类是所有信息的拥有者,它将封装在从其创建的响应中。ResponseBuilder 类还具有负责在消息上设置 HTTP 标头属性的所有方法。

Response 类提供了一些方法来轻松设置正确的响应代码并嵌套实体。每个常见响应状态代码都有方法。与状态对应的方法(包括实体正文或所需元数据)包括允许直接设置信息到关联的响应构建器的版本。

response Builder 类的 build () 方法返回一个响应对象,其包含在调用方法时存储在响应构建器中的信息。返回响应对象后,响应构建器将返回到干净的状态。

获取响应构建器

获取响应构建器有两种方法:

  • 使用 Response 类的静态方法,如 使用 Response 类获取响应构建器 所示。

    使用 Response 类获取响应构建器

    import javax.ws.rs.core.Response;
    
    Response r = Response.ok().build();

    当通过这种方式获取响应构建器时,您无法在多个步骤中操作实例。您必须将所有操作字符串到一个方法调用中。

  • 使用 Apache CXF 特定 ResponseBuilderImpl 类。通过本课程,您可以直接使用响应构建器。但是,需要手动设置所有响应构建器信息。

    例 48.1 “使用 ResponseBuilderImpl 类获取响应构建器” 显示如何使用 ResponseBuilderImpl 类重写 使用 Response 类获取响应构建器

    例 48.1. 使用 ResponseBuilderImpl 类获取响应构建器

    import javax.ws.rs.core.Response;
    import org.apache.cxf.jaxrs.impl.ResponseBuilderImpl;
    
    ResponseBuilderImpl builder = new ResponseBuilderImpl();
    builder.status(200);
    Response r = builder.build();
    注意

    您也可以简单地将 ResponseBuilderResponse 类的方法返回给 ResponseBuilderImpl 对象。

更多信息

有关 Response 类的更多信息,请参阅 Response 类的 Javadoc

有关 ResponseBuilder 类的更多信息,请参阅 ResponseBuilder 类的 Javadoc

有关 Apache CXF ResponseBuilderIml 类的更多信息,请参阅 response BuilderImpl Javadoc

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.