Xamarin アプリケーションからのリソース要求

improve this page | report issue

概説

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

前提条件:

WLResourceRequest

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

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

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

要求の送信

.send() メソッドを使用してリソースを要求します。

WorklightResponse response = await request.send();

WorklightResponse response オブジェクトを使用して、アダプターから取り出されたデータを取得します。

response オブジェクトには応答データが含まれており、そのメソッドとプロパティーを使用して必要な情報を取得することができます。よく使用されるプロパティーは、ResponseTextResponseJSON (応答が JSON の場合)、Success (呼び出しが成功の場合も失敗の場合も使用されます)、および HTTPStatus (応答の HTTP 状況) です。

パラメーター

要求を送信する前に、必要に応じてパラメーターを追加したい場合があります。

パス・パラメーター

上記の説明のとおり、path パラメーター (/path/value1/value2) は、WorklightResourceRequest オブジェクトの作成中に設定されます。

Uri adapterPath = new Uri("/adapters/JavaAdapter/users/value1/value2",UriKind.Relative);
WorklightResourceRequest request = WorklightClient.CreateInstance.ResourceRequest(adapterPath,"GET");

照会パラメーター

query パラメーター (/path?param1=value1...) を送信するには、パラメーターごとに SetQueryParameter メソッドを使用します。

request.SetQueryParameter("param1","value1");
request.SetQueryParameter("param2","value2");

JavaScript アダプター

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

request.SetQueryParameter("params","['value1', 'value2']");

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

フォーム・パラメーター

本体内のフォーム・パラメーターを送信するには、.Send() ではなく .Send(Dictionary<string, string> formParameters) を使用します。

Dictionary<string,string> formParams = new Dictionary<string,string>();
formParams.Add("height", height.getText().toString());
request.Send(formParams);

JavaScript アダプター

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

formParams.Add("params","['value1', 'value2']");

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

ヘッダー・パラメーター

HTTP ヘッダーとしてパラメーターを送信するには、.SetHeader() API を使用します。

System.Net.WebHeaderCollection headerCollection = new WebHeaderCollection();

headerCollection["key"] = value;

request.AddHeader(headerCollection);

その他のカスタム本体パラメーター

  • .Send(requestBody) を使用して、本体に任意のストリングを設定できます。
  • .Send(JObject json) を使用して、本体に任意のディクショナリーを設定できます。
  • .Send(byte[] data) を使用して、本体に任意のバイト配列を設定できます。

応答

WorklightResponse オブジェクトには応答データが含まれており、そのメソッドとプロパティーを使用して必要な情報を取得することができます。よく使用されるプロパティーは、ResponseText (ストリング)、ResponseJSON (JSONObject) (応答が JSON である場合)、success (ブール値) (応答の成功状況) です。

要求が失敗した場合、応答オブジェクトには error プロパティーも含まれます。

詳細情報

WLResourceRequest について詳しくは、ユーザー文書を参照してください。

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

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

ResourceRequestXamarin プロジェクトには、Java アダプターを使用してリソース要求を行うネイティブ Android および iOS アプリケーションが含まれています。
アダプター Maven プロジェクトには、リソース要求呼び出し中に使用される Java アダプターが含まれています。

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

サンプルの使用法

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

Last modified on February 27, 2017