操作

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

最初にサービス インターフェイスを作成したら、インターフェイス マッパーを使用して操作のコレクションを作成することによってその機能を定義します。通常は、操作は 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 メソッドごとに新しい操作が生成されます。