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
文件来启用它。
-
在文本编辑器中打开应用的
web.xml
文件。 在
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); });