チュートリアル:REST クライアント ライブラリを使用して REST ベースの Web サービスにアクセスする
データベースおよび LiveBinding のチュートリアル への移動
目次
この REST BaaS(Backend as a Service)クライアント チュートリアルでは、REST クライアント ライブラリを使って REST ベースの Web サービスにアクセスする方法を説明します(REST とは Representational State Transfer の略語)。この REST ライブラリは、Delphi でサポートされているすべてのプラットフォームで使用できます。REST ライブラリ フレームワークでは、表現形式として JSON を使用します。XML は明示的にサポートされていません。
プロジェクトを作成する
新しいプロジェクトを作成します。
- Delphi の場合は、[ファイル|新規作成|マルチデバイス アプリケーション - Delphi|空のアプリケーション] を選択します。
- C++Builder の場合、[ファイル|新規作成|マルチデバイス アプリケーション - C++Builder|空のアプリケーション]を選択します。
REST コンポーネントを追加する
- TRESTClient、TRESTRequest、TRESTResponse の各コンポーネントをフォームにドロップします。
- ヒント: あるいは、[REST デバッガ]ツールの[コンポーネントのコピー]ボタンを使用して、この 3 つすべてのコンポーネントをクリップボードにコピーし、それからフォームにペーストすることもできます。そうすれば作業の速度が上がります。
- [オブジェクト インスペクタ]で、TRESTClient の BaseURL プロパティを「http://www.songsterr.com/a/ra/」に設定します。
- フォーム上の TRESTRequest コンポーネントを選択し、以下のプロパティを設定します。
- [オブジェクト インスペクタ]で Resource プロパティを「songs.json」に設定します。
- [構造]ビューで、Params ノードを展開します。
- Params ノードを右クリックし、コンテキスト メニューの[項目を追加]をクリックします。
- Params の下に新しく追加されたパラメータ 0- をクリックします。
- [オブジェクト インスペクタ]で、パラメータの名前を「pattern」に、パラメータの値を「Madonna」に設定します。
- TRESTRequest コンポーネントを右クリックし、[実行...]を選択します。
- [OK]ボタンをクリックします。
- メモ: この例では、Songsterr Web サービスから JSON 形式で応答を受け取る方法を説明しました。Songsterr Web サービスでは、xml 形式と plist 形式もサポートしています。詳細は http://www.songsterr.com/a/wa/api を参照してください。
[LiveBinding デザイナ]を使用する
[LiveBinding デザイナ]を開きます。接続の矢印がない次のようなダイアグラムが表示されます。
- RESTResponse1.Content プロパティを右クリックします。
- [新規コントロールにリンク...]オプションを選択します。
- 表示されるリストから TMemo コントロールを選択します。
- [OK]ボタンをクリックします。
- [オブジェクト インスペクタ]で、TMemo コンポーネントの以下のプロパティを設定します。
- Align プロパティを Client に設定します。
- TextSettings 下の WordWrap プロパティを True に設定します。
- TRESTRequest コンポーネントの[実行...]を既に行っていれば、TMemo に未加工の JSON 結果が既に表示されているはずです。
- TPanel コンポーネントをフォーム上にドロップします。
- TPanel の Align プロパティを Top に設定します。
- LiveBinding デザイナで RESTClient1 の Params.pattern プロパティを右クリックします。
- [新規コントロールにリンク...]オプションを選択します。
- 表示されるリストから TEdit コントロールを選択し、[OK]をクリックします。
- Params.pattern コントロールをフォームの一番上に移動します。
- TButton コンポーネントをフォームに追加し、ボタンの Text プロパティを Execute に設定します。
実行時用にアプリケーションを準備する
実行ボタンのイベント ハンドラを作成する
- フォーム デザイナで Button1 コンポーネントを選択します。
- [オブジェクト インスペクタ]で OnClick イベントをダブルクリックします。
- このイベント ハンドラに次のコードを追加します。
Delphi の場合:
procedure TForm1.Button1Click(Sender: TObject);
var
jValue:TJSONValue;
begin
RESTRequest1.Execute;
jValue:=RESTResponse1.JSONValue;
MemoContent.Text:= jValue.ToString;
end;
重要: TJSONValue クラスは System.JSON ユニットで宣言されています。このプロジェクトをコンパイルする前に、ユニットの uses 句に System.JSON を追加してください。
C++Builder の場合:
void __fastcall TForm1::Button1Click(TObject *Sender) {
TJSONValue *jValue;
RESTRequest1->Execute();
jValue = RESTResponse1->JSONValue;
MemoContent->Text = jValue->ToString();
}
重要: TJSONValue クラスは System.JSON ライブラリで宣言されています。このプロジェクトをコンパイルする前に、プロジェクトのヘッダー ファイルに #include <System.JSON.hpp> を追加してください。
アプリケーションを実行する
アプリケーションを実行するには:
F9
キーを押すか、[実行|実行]を選択します。- [Param.pattern]テキスト ボックスにパターン(「Madonna」など)を入力します。
- [Execute]をクリックして要求を Songsterr サービスに送信します。
関連項目