GeneXusでサービス・プロバイダとして公開可能なオブジェクトは、トランザクション、プロシージャ、データプロバイダの3つになります。今回は一番基本になるプロシージャオブジェクトをWebサービスとして作成・公開します。例として、ログイン認証機能を提供するWebサービス・プロバイダを作成してみましょう。
注意:あくまでもWebサービスの実装に主眼をおいているため、セキュリティに関する実装は考慮していません。
1.認証に使用するユーザートランザクションを作成します。
今回はユーザーID、パスワードを使って認証チェックを行います。その為のトランザクションです。2.Webサービス・プロバイダ用にプロシージャオブジェクトを作成します。
3.プロシージャの呼び出しパラメータを定義します。
インプットパラメータとして&UserId、&UserPasswordを、アウトプットパラメータとして&Result( Boolean型 )を変数定義し、Parmルールを記述します。
Parm(in:&UserId, in:&Password, out:&Result );
4.プロシージャに認証用のロジックを定義します。
For each
Where UserId = &UserId
Where Password = &Password
&Result = True
When none
&Result = False
Endfor
5.プロシージャオブジェクトのプロパティを変更します。
・Main program = True
・Call protocol = SOAP
以上で終わりです。SOAP通信するための実装としては2つのプロパティを変更するだけです。早速、ビルド・実行してみましょう。「Main program=True」のオブジェクトは右クリックのメニューから「実行」を選択することにより、直接ビルド・実行する事ができます。
直接ブラウザで実行すると以下のようになります。
表示された結果(XML)が空で上手くいったのかわかりませんね。そこでURLの末尾にパラメータとして「?wsdl」を加えて再度実行してみて下さい。
どうですか? なにやら大量のXMLが表示されていると思います。これがWSDLというSOAP通信を行う取り決めが定義されたデータです。このWSDLをサービス・リクエスタを作成する側で解析する事によりSOAP通信の実装が可能となります。
以上でサービス・プロバイダが完成です。次回はこのサービス・プロバイダを呼び出すサービス・リクエスタを実装します。
0 件のコメント:
コメントを投稿