2.17. resteasy JavaScript API


2.17.1. 关于 RESTEasy JavaScript API

RESTEasy 可以生成 JavaScript API,它使用 AJAX 调用来调用 JAX-RS 操作。每一 JAX-RS 资源类将生成名称与声明类或接口相同的 JavaScript 对象。JavaScript 对象包含各个 JAX-RS 方法作为属性。

@Path("foo")
public class Foo {

  @Path("{id}")
  @GET
  public String get(@QueryParam("order") String order, @HeaderParam("X-Foo") String header,
    @MatrixParam("colour") String colour, @CookieParam("Foo-Cookie") String cookie) {
  }

  @POST
  public void post(String text) {
  }
}
Copy to Clipboard Toggle word wrap

以下 JavaScript 代码使用上例中生成的 JAX-RS API:

var text = Foo.get({order: 'desc', 'X-Foo': 'hello', colour: 'blue', 'Foo-Cookie': 123987235444});
Foo.post({$entity: text});
Copy to Clipboard Toggle word wrap

每一 JavaScript API 方法将可选对象用作单一参数,其中每个属性都是一个 Cookie、标头、路径、查询或表单参数(根据名称或 API 参数属性标识)。有关 API 参数属性的详情,请参阅 RESTEasy Javascript API 参数附录

2.17.1.1. 启用 RESTEasy JavaScript API Servlet

RESTEasy JavaScript API 默认禁用。按照以下步骤,通过更新 web.xml 文件来启用它。

  1. 在文本编辑器中打开应用的 web.xml 文件。
  2. web-app 标签中添加以下配置:

    <servlet>
        <servlet-name>RESTEasy JSAPI</servlet-name>
        <servlet-class>org.jboss.resteasy.jsapi.JSAPIServlet</servlet-class>
    </servlet>
    
    <servlet-mapping>
        <servlet-name>RESTEasy JSAPI</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
    Copy to Clipboard Toggle word wrap

2.17.1.2. 构建 AJAX 查询

RESTEasy JavaScript API 可用于手动构建请求。以下是此行为的一些示例:

示例:用于覆盖 RESTEasy JavaScript API 客户端的 REST 对象

// Change the base URL used by the API:
REST.apiURL = "http://api.service.com";

// log everything in a div element
REST.log = function(text) {
  jQuery("#log-div").append(text);
};
Copy to Clipboard Toggle word wrap

REST 对象包含以下读写属性:

  • apiURL :默认设置为 JAX-RS 根 URL。在构建请求时供每个 JavaScript 客户端 API 功能使用。
  • log :设置为 功能(字符串),以便接收 RESTEasy 客户端 API 日志。如果要调试客户端 API 并将日志放在可以查看它们的位置,这很有用。

示例:使用 REST.Request()方法构建自定义请求的类

var r = new REST.Request();
r.setURI("http://api.service.com/orders/23/json");
r.setMethod("PUT");
r.setContentType("application/json");
r.setEntity({id: "23"});
r.addMatrixParameter("JSESSIONID", "12309812378123");
r.execute(function(status, request, entity) {
  log("Response is " + status);
});
Copy to Clipboard Toggle word wrap

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat