オペレーション

インターフェイス マッパーを使用して作成されたサービス インターフェイス オペレーションについて説明します。

最初にサービス インターフェイスを作成したら、インターフェイス マッパーを使用してオペレーションのコレクションを作成することによってその機能を定義します。通常は、オペレーションは 1 つのプログラム エントリ ポイントとの相互作用を表します。インターフェイス マッパーでは、一度に 1 つのオペレーションを行います。

通常、1 つのサービス インターフェイスには複数のオペレーションが含まれます。たとえば、1 つのエントリ ポイントが、異なる機能を選択する EVALUATE 文に続いていることがわかっている場合は、これらの各機能に対して個別のオペレーションを定義できます。このようなプログラムでは多くの場合、1 つのパラメーターが、どの機能が指定されているかを調べるために EVALUATE 文によってテストされるパラメーターになります。

ディプロイを目的として、すべてのオペレーションが 1 つのサービスにパッケージ化されますが、個々のオペレーションは個別に実行できます (つまり、サービスの実行ごとに 1 つのオペレーションのみが呼び出されます)。

ディプロイされたオペレーションの名前は、Enterprise Server が識別の目的で使用します (「サービス名およびオペレーション」のトピックを参照)。着信 SOAP Web サービス要求の場合、Enterprise Server は、要求の本文 (要求の URI ではなく) からオペレーション名を抽出することで呼び出すオペレーションを確認します。対照的に、JSON (RESTful) Web サービス要求の場合は、以下で説明するように、要求されたオペレーションを確認する手段として要求の URI が使用されます。

オペレーション パス
インターフェイス マッパーでは、JSON (RESTful) Web サービスの場合、オペレーションに相対 URI パスを指定できます (デフォルトは /operationName)。この先頭にサービスのベース URI を付加して、そのオペレーションを呼び出すために使用します。パスの変数部分には、中かっこで囲まれたパラメーター名を含めることができます (例:/cars/{make}/parts)。同じ論理リソースのオペレーションは通常、同じパスで定義されますが、HTTP メソッドが異なります (つまり、GET、POST、PUT、DELETE)。したがって、オペレーションはパスとメソッドの組み合わせによって一意に識別されます。JSON Web サービスにパスとメソッドがあいまいなオペレーションが複数ある場合、Enterprise Server は定義されたとおりにサービスに最初に現れるオペレーションを呼び出します。あいまいなパスの例としては、/cars/{make}/parts/cars/{model}/parts、または /cars/{make}/parts/cars/ford/{model} (両方のパスで URI /cars/ford/parts が有効であるため) が挙げられます。したがって、オペレーション パスを定義する際はあいまいさを避けるよう注意してください。Enterprise Server が JSON Web サービスのベース URI のみを含む GET 要求を受信した場合 (つまり、オペレーションが示されていない場合)、サービスのすべてのオペレーションの相対 URI パスを含む JSON リンク記述オブジェクトの単一配列を含む特別な応答メッセージが返されます。このように、クライアントはサービスのベース URI を把握するだけで、そのオペレーションにアクセスする方法を特定できます。
API リソースのオペレーションの生成
JSON (RESTful) Web サービスの場合、新しいオペレーションの作成時に、選択したエントリ ポイントの COBOL グループ構造から「API リソース」を自動的に識別し、新しいオペレーションのセットを一度にすべて生成するオプションがあります。オペレーションの生成対象となる識別されたリソース、リソースのオペレーションの相対 URI パス、およびリソースへのアクセスに使用できる HTTP メソッドを選択できます。これにより、選択したリソースの選択した HTTP メソッドごとに新しいオペレーションが生成されます。