JavaScript (Cordova、Web) アプリケーションからのリソース要求

improve this page | report issue

概説

MobileFirst アプリケーションは WLResourceRequest REST API を使用してリソースにアクセスできます。
REST API は、すべてのアダプターおよび外部リソースで機能します。

前提条件:

  • Cordova アプリケーションを実装する場合は、必ずご使用の Cordova アプリケーションに Mobile Foundation SDK を追加しておいてください。
  • Web アプリケーションを実装する場合は、必ずご使用の Web アプリケーションに Mobile Foundation SDK を追加しておいてください。
  • アダプターの作成方法を参照してください。

WLResourceRequest

WLResourceRequest クラスは、アダプターまたは外部リソースに対するリソース要求を処理します。

WLResourceRequest オブジェクトを作成し、リソースへのパスと HTTP メソッドを指定します。
使用可能なメソッドは、WLResourceRequest.GETWLResourceRequest.POSTWLResourceRequest.PUT、および WLResourceRequest.DELETE です。

var resourceRequest = new WLResourceRequest(
    "/adapters/JavaAdapter/users",
    WLResourceRequest.GET
);
  • JavaScript アダプター の場合は、/adapters/{AdapterName}/{procedureName} を使用します。
  • Java アダプターの場合は、/adapters/{AdapterName}/{path} を使用します。path は、Java コードで @Path アノテーションをどのように定義したかによって決まります。これには、使用した @PathParam も含まれます。
  • プロジェクトの外部にあるリソースにアクセスするには、外部サーバーの要件のとおりに完全な URL を使用してください。
  • タイムアウト: オプション。ミリ秒単位の要求タイムアウトです。

要求の送信

send() メソッドを使用してリソースを要求します。
send() メソッドは、HTTP 要求に本体を設定するためのオプション・パラメーターを使用します。この本体は、JSON オブジェクトまたは単純なストリングの場合があります。

JavaScript の promises を使用して、onSuccess および onFailure のコールバック関数を定義できます。

resourceRequest.send().then(
    onSuccess,
    onFailure
)

setQueryParameter

setQueryParameter メソッドを使用すると、照会 (URL) パラメーターを REST 要求に含めることができます。

resourceRequest.setQueryParameter("param1", "value1");
resourceRequest.setQueryParameter("param2", "value2");

JavaScript アダプター

JavaScript アダプターは、名前のない順序付きのパラメーターを使用します。パラメーターを JavaScript アダプターに渡すには、以下のように名前 params を使用してパラメーターの配列を設定します。

注: params 値は、配列のストリング表現でなければなりません。

resourceRequest.setQueryParameter("params", "['value1', 'value2']");

これは、WLResourceRequest.GET と一緒に使用してください。

setHeader

setHeader メソッドを使用して、REST 要求で新規 HTTP ヘッダーを設定したり、既存のヘッダーを同じ名前で置換したりすることができます。

resourceRequest.setHeader("Header-Name","value");

sendFormParameters(json)

URL エンコード形式のパラメーターを送信するには、代わりに sendFormParameters(json)メソッドを使用します。このメソッドは、JSON を URL エンコードのストリングに変換し、content-typeapplication/x-www-form-urlencoded に設定して、それを HTTP 本体として設定します。

var formParams = {"param1": "value1", "param2": "value2"};
resourceRequest.sendFormParameters(formParams);

JavaScript アダプター

JavaScript アダプターは、名前のない順序付きのパラメーターを使用します。パラメーターを JavaScript アダプターに渡すには、以下のように名前 params を使用してパラメーターの配列を設定します。

var formParams = {"params":"['value1', 'value2']"};

これは、WLResourceRequest.POST と一緒に使用してください。

WLResourceRequest について詳しくは、ユーザー文書の API リファレンスを参照してください。

応答

onSuccessonFailure の両方のコールバックは、response オブジェクトを受け取ります。response オブジェクトには応答データが含まれており、そのプロパティーを使用して必要な情報を取得することができます。よく使用されるプロパティーは、responseTextresponseJSON(応答が JSON の場合は JSON オブジェクト)、および status (応答の HTTP 状況) です。

要求が失敗した場合、response オブジェクトには errorMsg プロパティーも含まれます。
Java アダプターを使用しているか、JavaScript アダプターを使用しているかに応じて、応答には、responseHeadersresponseTimestatusCodestatusReasontotalTime などの他のプロパティーが含まれる場合があります。

{
  "responseHeaders": {
    "Content-Type": "application/json",
    "X-Powered-By": "Servlet/3.1",
    "Content-Length": "86",
    "Date": "Mon, 15 Feb 2016 21:12:08 GMT"
  },
  "status": 200,
  "responseText": "{\"height\":\"184\",\"last\":\"Doe\",\"Date\":\"1984-12-12\",\"age\":31,\"middle\":\"C\",\"first\":\"John\"}",
  "responseJSON": {
    "height": "184",
    "last": "Doe",
    "Date": "1984-12-12",
    "age": 31,
    "middle": "C",
    "first": "John"
  },
  "invocationContext": null
}

応答の処理

応答オブジェクトは、onSuccess および onFailure のコールバック関数によって受信されます。
例えば、次のとおりです。

      onSuccess: function(response) {
resultText = "Successfully called the resource: " + response.responseText;
},

onFailure: function(response) {
    resultText = "Failed to call the resource:" + response.errorMsg;
}

詳細情報

WLResourceRequest について詳しくは、API リファレンスを参照してください

サンプル・アプリケーションのイメージ

サンプル・アプリケーション

ResourceRequestWeb プロジェクトおよび ResourceRequestCordova プロジェクトは、Java アダプターを使用したリソース要求を例示します。
アダプター Maven プロジェクトには、リソース要求呼び出し中に使用される Java アダプターが含まれています。

ここをクリック して Cordova プロジェクトをダウンロードします。
ここをクリック して Web プロジェクトをダウンロードします。
ここをクリック してアダプター Maven プロジェクトをダウンロードします。

サンプルの使用法

サンプルの README.md ファイルの指示に従ってください。

Last modified on October 05, 2017