Web サービスのコールバックのカスタマイズ
コールバック・メソッドをオーバーライドすることによって、InterSystems IRIS® データ・プラットフォーム Web サービスの動作をカスタマイズできます。
Web サービスが要求メッセージを受信したときに、セキュリティ・エラーがない場合に呼び出されます。このコールバックは、セキュリティ・エラーが発生した場合には呼び出されません。システムは、セキュリティ処理の実行後、エンベロープのエラーのチェック後、および WS-Addressing ヘッダ内に指定されているアクションの処理後 (ある場合) に、このコールバックを呼び出します。このコールバックは、未加工の SOAP 要求のログを記録するなどのタスクで役立ちます。
このメソッドには、以下のシグニチャがあります。
Method OnRequestMessage(mode As %String, action As %String, request As %Stream.Object)
以下はその説明です。
-
mode は、SOAP 要求のタイプを指定します。これは、"SOAP" または "binary" のいずれかを指定します。
-
action は、SOAPAction ヘッダの値を格納します。
-
request は、ストリームの SOAP 要求メッセージを格納します。
このメソッドは、%CSP.SessionOpens in a new tab のインスタンスであるオブジェクト %request を使用できます。このオブジェクトの内容は以下のとおりです。
-
Content プロパティには、未加工の要求メッセージが格納されます。
-
NextMimeData() インスタンス・メソッドによって、個々の MIME パートの取得が可能になります (MIME SOAP 要求の場合)。
このメソッドは、Web サービス・インスタンスのプロパティも使用できます。以下のプロパティは初期化の際に設定されます。
-
ImportHandler プロパティには、解析済み SOAP メッセージの DOM が格納されます。
-
SecurityIn プロパティには、WS-Security ヘッダ要素が格納されます。詳細は、"Web サービスの保護" を参照してください。
-
SecurityNamespace プロパティには、WS-Security ヘッダ要素のネームスペースが格納されます。
-
SOAP フォルトが生成された場合、SoapFault プロパティが設定されます。
OnRequestMessage() 内でフォルトを返すには、SoapFault プロパティを設定します。ReturnFault() メソッドは呼び出さないでください。
Web メソッドが実行される直前に呼び出され、既定では何もしません。このメソッドは引数を取らないので値を返すことができません。このため、Web メソッドと同じ方法で SOAP フォルトを返すことを除き、このメソッドでは Web サービスの実行を変更できません。
このメソッドは、%request、%session、および Web サービスのプロパティを使用できます。Web サービスの MsgClass プロパティは、Web メソッドの引数を含むメッセージ記述子クラスです。
Web メソッドの実行直後に呼び出され、既定では何もしません。このメソッドは引数を取らないので値を返すことができません。このため、このメソッドは Web メソッドの実行を変更したり、値を返したりできません。主に、OnPreWebMethod() によって作成される必要な構造を削除するために、このメソッドをカスタマイズします。