RAD開発の応用 - RESTを使ってつながるシステムに拡張する

2011年6月2日(木)
藤井 等

RESTサーバーを作成する

それでは、実際にDelphiを使って、RESTサーバーを作成してみましょう。[ファイル|新規作成]から[その他]を選択します。「新規作成」ダイアログの[Delphiプロジェクト|DataSnap Server]カテゴリから「DataSnap RESTアプリケーション」を選択します。[OK]ボタンをクリックすると、「DataSnap RESTアプリケーションの新規作成」ダイアログが表示されます。

図1:DataSnap RESTアプリケーションの新規作成

このウィザードを用いれば、ウィンドウを持つスタンドアロンの、VCLアプリケーションのRESTサーバー、あるいはスタンドアロンコンソールアプリケーション、または、IISで利用できる、ISAPIダイナミックリンクライブラリのRESTサーバーのいずれかを作成できます。ここでは、「スタンドアロンVCLアプリケーション」を選択しましょう。

次に使用するポート番号を指定します。ポート番号を入力したら、[ポートのテスト]ボタンをクリックして、そのポートを利用できるかどうかテストすることができます。

図2:ポートのテスト

次に、サーバーメソッドクラスの上位クラスを指定します。上位クラスには、TComponent、TDataModule、TDSServerModuleを指定できます。これらのコンポーネントクラスを継承することで、サーバーメソッドクラスもコンポーネントとしてビジュアルに扱うことができるのです。ここでは、シンプルなTComponentを選択します。

最後にプロジェクトの保存場所を指定して、[完了]ボタンをクリックすると、RESTサーバーアプリケーション(この場合は、GUIを持つWindowsアプリケーション)が作成されます。

図3:作成されたRESTサーバーアプリケーション(クリックで拡大)

このプロジェクトには、3つのユニットがあります。Unit1は、GUI部分、すなわちフォームです。ServerMethodsUnit1は、RESTサーバーのリモートメソッドが定義されています。ここでは、サンプルとして、引数に与えた文字列をそのまま返すEchoStringと、文字列を反転させるReverseStringの、2つのメソッドが定義されています。

Unit ServerMethodsUnit1;

interface

uses
  SysUtils, Classes, DSServer;
type
{$METHODINFO ON}
  TServerMethods1 = class(TComponent)
  private
    { private 宣言 }
  public
    { public 宣言 }
    function EchoString(Value: string): string;
    function ReverseString(Value: string): string;
  end;
{$METHODINFO OFF}

implementation

uses StrUtils;

function TServerMethods1.EchoString(Value: string): string;
begin
  Result := Value;
end;

function TServerMethods1.ReverseString(Value: string): string;
begin
  Result := StrUtils.ReverseString(Value);
end;
end.

最後のユニットUnit2は、サーバーとなるWebModuleです。Delphiでは、RESTサーバーを構築するために必要が機能も、コンポーネントとして提供されています。ウィザードは、必要なコンポーネントを配置し、あらかじめ設定を行っています。もちろん、ウィザードが生成したこのWebモジュールを、必要に応じてカスタマイズしていくこともできます。その際には、オブジェクトインスペクタを使って、プロパティやイベントを設定する、通常のビジュアル開発の手順を用います。

図4:RESTサーバーとなるWebモジュール(クリックで拡大)

今回は、ウィザードが生成したサンプルメソッドをそのまま使います。もちろん、独自のメソッドを定義したい場合には、ServerMethodsUnit1に追加します。

RESTサーバーの実行

[実行]ボタンをクリックすると、プロジェクトがコンパイルされ、サーバーを制御するウィンドウが表示されます。

図5:RESTサーバーの実行(クリックで拡大)

[開始ボタン]をクリックして、サーバーを起動します。[ブラウザを開く]ボタンをクリックして、リモートメソッドにアクセスするページを表示します。

図6:ブラウザで表示(クリックで拡大)

[ReverseString]ボタンをクリックすると、リモートメソッドのReverseStringが呼び出され、テキストボックスに入力された文字列を反転させます。

図7:文字列の反転(クリックで拡大)

このページにある「Server Functions」というリンクをクリックすると、すべてのリモートメソッド呼び出しに関する情報が表示されます。

図8:「Server Function Invoker」ページ(クリックで拡大)

サーバーの作成は以上です。

エンバカデロ・テクノロジーズ 日本法人代表
千葉大学文学部行動科学科卒業。石油関連会社でGISなどの開発を経験したのち、1995年、ボーランドに入社。マーケティングとしてJava開発ツールJBuilderやVisiBrokerなどミドルウエア製品の立ち上げを行う。2008年7月、ボーランドの開発ツール部門を合併したエンバカデロ・テクノロジーズに移籍。2009年1月より日本法人代表を務める。

連載バックナンバー

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています