2.17. RESTEasy JavaScript API
2.17.1. RESTEasy JavaScript API について リンクのコピーリンクがクリップボードにコピーされました!
RESTEasy は、AJAX 呼び出しを使用して Jakarta RESTful Web Services 操作を呼び出す JavaScript API を生成することができます。各 Jakarta RESTful Web Services リソースクラスは、宣言するクラスまたはインターフェイスと同じ名前を持つ JavaScript オブジェクトを生成します。JavaScript オブジェクトには、プロパティーとして各 Jakarta RESTful Web Services メソッドが含まれます。
@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 コードは、前述の例で生成された Jakarta RESTful Web Services 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 Parameters の付録を参照してください。
2.17.1.1. RESTEasy JavaScript API サーブレットの有効化 リンクのコピーリンクがクリップボードにコピーされました!
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: デフォルトで Jakarta RESTful Web Services ルート URL に設定されます。要求の作成時にすべての JavaScript クライアント API 機能によって使用されます。 -
log: RESTEasy クライアント API ログを受信するためにfunction(string)に設定します。これは、クライアント 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);
});