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) {
  }
}

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

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

每一 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>

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);
};

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);
});

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.