HTTP アダプタについて
HTTP アダプタ (EnsLib.HTTP.InboundAdapterOpens in a new tab および EnsLib.HTTP.OutboundAdapterOpens in a new tab) を使用すると、プロダクションで HTTP 要求および応答を送受信できるようになります。ここでは、これらのアダプタについて簡単に説明します。
Web サーバと InterSystems IRIS との間の通信の設定には Web ゲートウェイを使用することを強くお勧めしますが、必要に応じて、受信アダプタを使用することもできます。
InterSystems IRIS® データ・プラットフォームでは、これらのアダプタを使用する特殊なビジネス・サービス・クラスとユーザのニーズに適したビジネス・サービス・クラスの 1 つも提供されます。そのため、プログラミングの必要がありません。"接続オプション" を参照してください。
HTTP 受信アダプタとヘルパ・クラス
EnsLib.HTTP.InboundAdapterOpens in a new tab は、カスタム・ポート・リスニング、XML リスニング、または生の HTML 処理に使用する HTTP リスナです。受信アダプタは、(標準の Web サーバを使用して HTTP 要求を処理する) CSP ページを使用せずに、プライベート・ポートでリッスンします。Web ゲートウェイの詳細は、"Web ゲートウェイのインストール" を参照してください。
EnsLib.HTTP.InboundAdapterOpens in a new tab クラスには、以下のような項目の指定に使用する実行時設定が用意されています。
-
アダプタが入力をリッスンするローカル・ポート
-
アダプタが入力を受け入れる IP アドレスのリスト (使用可能なソースを制限したい場合)
-
受信要求で指定された文字セットを使用するかどうかを指定する設定。また、受信要求で指定された文字セットを使用しない場合は、使用する別の文字セット
受信 HTTP アダプタは指定されたポートでリッスンし、入力を読み取り、関連するビジネス・サービスにストリーム (使用する文字セットに応じて、バイナリまたは文字のいずれか) としてその入力を送信します。ユーザが作成および構成するビジネス・サービスは、このストリームを使用してプロダクションの他の部分と通信します。
HTTP 受信アダプタを使用する場合、%Library.GlobalCharacterStreamOpens in a new tab および %Library.GlobalBinaryStreamOpens in a new tab の 2 つのヘルパ・クラスを使用します。受信アダプタは、関連するビジネス・サービスにストリームを送信します。具体的にはこれは、使用する文字セットに応じて、%Library.GlobalCharacterStreamOpens in a new tab または %Library.GlobalBinaryStreamOpens in a new tab のインスタンスになります。通常、これらのクラスは、ストリームのコンテンツを読み取る、ストリーム長を取得する、単一の行を読み取る、巻き戻す、データを追加する、といった操作に使用できるメソッドを提供します。これらのクラスの詳細は、"ストリームを使用した作業" を参照してください。
HTTP 送信アダプタとヘルパ・クラス
EnsLib.HTTP.OutboundAdapterOpens in a new tab は、HTTP 要求をプロダクションの外部に送信し HTTP 応答を受信するアダプタです。このアダプタは、以下のような項目を制御する設定を提供します。
-
アダプタが HTTP 要求を送信するサーバおよびポート
-
指定されたサーバおよびポートで、要求するリソースの URL パス
-
サーバへの接続に使用するオプションの TLS 構成
-
アダプタが要求をルーティングするプロキシ・サーバを指定するためのオプション情報
このアダプタは、HTTP POST、GET、および PUT アクションを送信するメソッドを提供します。
-
主要なメソッドは PostFormData() および GetFormData() です。各メソッドで、応答オブジェクトの出力引数、フォーム変数名のカンマ区切りのリスト、およびフォーム変数引数の変数数値 (1 つの変数数値がカンマ区切りリスト内の各名前に対応) を使用できます。1 つのフォーム変数に複数の値を設定する場合は、リスト内で同じ名前を複数回使用できます。もちろん、フラットなスカラ・コンテンツ (通常の Web ページなど) を要求するために、フォーム変数なしでこれらのメソッドを使用することもできます。
-
フォーム変数の複雑なセットが使用されている場合は、PostFormDataArray() および GetFormDataArray() メソッドを使用します。これらのメソッドでは、変数引数リストの代わりに、多次元配列が使用できます。多次元配列は、指定されたフォーム変数の複数の値を、名前リスト内の複数のエントリとしてではなく、配列のサブノードとして提供できるため、情報の組織化に役立ちます。また、位置ではなくフォーム変数名によって配列にインデックスを割り当てることができます。
-
その他の特別な HTTP 要求 (PUT など) を使用する必要がある場合や、フォーム変数や Cookie 以外の HTTP 要求の面でカスタマイズをする必要がある場合には、低レベルのワーカ・メソッドである SendFormDataArray() を使用できます。
このアダプタは、Cookie を管理するためのプロパティおよびメソッドも提供します。
HTTP 送信アダプタを使用する場合、以下の 2 つのヘルパ・クラスを使用します。
-
HTTP 送信アダプタは、%Net.HttpRequestOpens in a new tab を使用して、送信する HTTP 要求をカプセル化します。
PostFormData()、GetFormData()、PostFormDataArray()、または GetFormDataArray() を使用する場合、要求はアダプタによって自動的に作成されるので、直接アクセスすることはできません。
ただし、SendFormDataArray() を使用する場合は、%Net.HttpRequestOpens in a new tab クラスのインスタンスを作成して、そのプロパティを設定し、それを使用してそのメソッドで送信する HTTP 要求を初期化できます。アダプタを介して設定できない (プロキシ認証などの) HTTP 要求のプロパティを設定する必要がある場合は、この方法を使用します。
-
すべての場合で、HTTP 応答は %Net.HttpResponseOpens in a new tab のインスタンスにカプセル化されます。%Net.HttpResponseOpens in a new tab クラスは HTTP ヘッダにアクセスするためのメソッドを提供すると共に、応答 (ストリーム・オブジェクト) の本文、理由コード、サーバの HTTP のバージョンなどを含むプロパティも提供します。