API 仕様からのアプリケーションのビルド

アプリケーション開発ライフサイクル中に APIkit を使用して API 仕様から Mule REST API または SOAP API をビルドできます。 次のモデリング言語に基づいて API を開発します。

  • RAML (RESTful API Modeling Language)

  • WSDL (Web Service Description Language)

  • OData (APIkit OData 拡張を使用した OData 対応 API)

  • OAS (Open API 仕様)

Anypoint Studio で APIkit を使用し、RAML または WSDL 仕様ファイルのインポートに基づいて Mule フローの作成を自動化することで、API の設計と実装を簡略化できます。API を生成したら、API をテストするコールを実行した後、実装を最終処理できます。

また、APIkit は、Apache Maven を使用してアプリケーションをビルドするのに役立つほか、既存のアプリケーション用のフローを生成するための CLI ツールも提供します。ただし、このいずれかのタスクを実行する前に、APIkit の基本構造を学習し、APIkit プロジェクトを開始するときに Mule フローを生成するスキャフォールディング手法を理解する必要があります。

APIkit の構造

APIkit を使用する REST または SOAP Studio プロジェクトには、次の部分があります。

  • REST または SOAP インターフェース

  • メインフロー

  • バックエンドフロー

REST Studio プロジェクト
Figure 1. REST Studio プロジェクト。
SOAP Studio プロジェクト
Figure 2. SOAP Studio プロジェクト。

REST インターフェース

REST リソースとアクション間のリレーションは、​リソースとアクション​のペアリングと呼ばれます。このインターフェースは、REST サービスにより要求された内部データアセットを公開します。また、このインターフェースは API を定義し (データを含むまたはデータにアクセスするリソースを指定します)、外部データに対するアクション (GET、PUT など) を指定します。

SOAP インターフェース

WSDL ファイルで定義されたインターフェースでは、多くのサービスが公開されます。各サービスには一連の操作が含まれます。基盤となるデータ種別は、WSDL ファイル内のスキーマまたはインポートされた XSD ファイルで定義された XML です。

メインフロー

API のメインフローでは、次の機能が管理されます。

  • HTTP 用 Anypoint Connector (HTTP Connector) を使用して API を公開する。

  • HTTP 要求に基づいてインターフェースとバックエンドフロー間で要求を転送する。

  • 要求を受け入れて、応答を送信し、インターフェースと API プロセス間の通信を促進する。

メインフローは HTTP Listener コンポーネントと APIkit (REST または SOAP) Router コンポーネントで構成されます。APIkit Router は、提供された定義に対して要求を検証し、メッセージを強化し (メッセージにデフォルト値を追加するなど)、要求をフローに転送する主要なメッセージプロセッサーです。また、ユーザー要求の転送中、検証中、または処理中にエラーが発生した場合、ルーターはエラーメッセージを出力します。

REST API メインフロー
Figure 3. REST API メインフロー。
SOAP API メインフロー
Figure 4. SOAP API メインフロー。

バックエンドフロー

REST 用の APIkit は、RAML ファイル内のリソースとアクションのペアリングごとにバックエンドフローを生成します。
SOAP 用の APIkit は、WSDL 内の操作ごとにバックエンドフローを生成します。
次の例では、RAML インターフェースは GET 要求のユーザーを受け取ります。バックエンドフローはデータベースにアクセスし、ID でユーザーを参照します。

REST API バックエンドフロー
Figure 5. REST API バックエンドフロー。

コールの実行

REST API の場合、API Console を使用して API へのコールを実行します。
SOAP API の場合、SoapUI などの SOAP テストツールを使用して、API へのコールを実行します。

APIkit プロジェクトを開始して Mule フローを作成

Studio で新しい APIkit プロジェクトを開始するときに、API 定義ファイルをインポートするオプションがあります。ファイルをインポートすると、APIkit スキャフォールディングメカニズムによって API のさまざまなフローが生成されます。Anypoint Studio で APIkit プロジェクトを開始する方法は 3 つあります。

API 定義ファイルを使用して新しい APIkit プロジェクトを開始

既存の RAML または WSDL ファイルをインポートするか、ファイルの URL を参照してプロジェクトを開始する場合、次の方法を使用します。

  1. [File (ファイル)] > [New (新規)] > [Mule Project (Mule プロジェクト)]​ を選択します。

  2. [Project Name (プロジェクト名)]​ に、プロジェクトの名前 (​「myproject」​など) を入力します。

  3. デフォルトの EE ランタイム (​Mule Server 4.2.0 EE​ など) を選択するか受け入れます。

  4. [API Implementation (API 実装)]​ で、​[Specify API Definition File Location or URL (API 定義ファイルの場所または URL を指定)]​ を選択します。

  5. [Location (場所)]​ で、次のいずれかを実行します。

    • Design Center で ​api.raml​ ファイルを作成している場合は、​[Design Center]​ を選択します。必要に応じて Anypoint Platform にログインし、​api.raml​ を選択します。

    • Design Center で RAML ファイルを作成していない場合は、​[Browse Files (ファイルを参照)]​ を選択し、テキストエディターで作成した RAML または WSDL ファイルを選択します。WSDL ファイルの場合、ドロップダウンメニューからサービスとポートを選択するか、デフォルトを受け入れます。

  1. [Location (場所)] のデフォルトオプションを受け入れて、​[Finish (完了)]​ をクリックします。

API 仕様が選択された [New Mule Project (新規 Mule プロジェクト)] ウィンドウ
Figure 6. API 仕様を選択している [New Mule Project (新規 Mule プロジェクト)] ウィンドウ。

この方法を使用すると、APIkit スキャフォールディング手法によって以下が生成されます。

  • 基本設定ファイルおよび Mule XML 設定ファイルを含むアーキタイプ

  • API の実装

RAML ベースの API の場合、RAML ファイルは ​src/main/resources/api​ フォルダーの下に表示されます。API の実装には以下が含まれます。

  • HTTP Listener を含むメインフロー

  • APIkit Router コンポーネント

  • エラーハンドラー

  • RAML の連動関係 (Studio などの特定の場所から Design Center などの別の場所に変更をプッシュまたはプルします)

  • REST のリソースとアクションのマッピングを含むバックエンドフロー

WSDL ベースの API の場合、WSDL ファイルは ​src/main/resources/api​ フォルダーの下に表示されます。API の実装には以下が含まれます。

  • SOAP Router

  • SOAP エラー応答テンプレート

  • SOAP メッセージテンプレートを含むバックエンドフロー

次の図は APIkit スキャフォールディングを示しています。

RAML スキャフォールディング
Figure 7. RAML スキャフォールディング。
WSDL スキャフォールディング
Figure 8. WSDL スキャフォールディング。

Studio では、REST API APIkit プロジェクトは次のようになります。

Package Explorer とキャンバスセクションを含む REST API Anypoint Studio UI。
Figure 9. Package Explorer とキャンバスセクションを含む Anypoint Studio UI 内の REST API。

この図で示されている 5 つの項目は次を示しています。

  1. Studio の Package Explorer に含まれるプロジェクトファイル。​api.raml​ ファイルは ​src/main/resources/api​ フォルダーの下にあります。

  2. APIkit Router を含むメインフロー。

  3. APIkit Console

  4. エラー処理

  5. リソースメソッドごとに生成されたフロー。
    生成された最小限のフローは、REST 契約で要求されるコミュニケーション操作を満たします。

Studio では、SOAP API APIkit プロジェクトは次のようになります。

Package Explorer とキャンバスセクションを含む SOAP API Anypoint Studio UI。
Figure 10. Package Explorer とキャンバスセクションを含む Anypoint Studio UI 内の SOAP API。

この図で示されている 4 つの項目は次を示しています。

  1. Studio の Package Explorer に含まれるプロジェクトファイル。​example.wsdl​ ファイルは ​src/main/resources/api​ フォルダーの下にあります。

  2. SOAP Router を含むメインフロー。

  3. SOAP エラー応答テンプレート

  4. SOAP メッセージテンプレートを含む、生成されたバックエンドフロー。

APIkit プロジェクトを作成したら、API をテストするコールを実行し、実装を最終処理することで、アプリケーションのビルドを続行することができます。詳細は、​[Build Applications Workflows]​を参照してください。

新しい APIkit プロジェクトを開始

API 仕様ファイルなしで APIkit プロジェクトを開始し、後で API 仕様ファイルをプロジェクトに追加できる場合、この方法を使用します。APIkit は骨格 RAML ファイルと XML 設定ファイルを生成します。

  1. [File (ファイル)] > [New (新規)] > [Mule Project (Mule プロジェクト)]​ を選択します。

  2. [Project Name (プロジェクト名)]​ に、プロジェクトの名前 (​「myproject」​など) を入力します。

  3. デフォルトの EE。ランタイム (​Mule Server 4.2.0 EE​ など) を選択するか受け入れます。

  4. [API Implementation (API 実装)]​ で、​[Specify API Definition File Location or URL (API 定義ファイルの場所または URL を指定)]​ を選択​しない​でください。
    これにより、バックエンドファーストの APIkit 設計が作成されます。

  5. その他のデフォルトのオプションを受け入れて ​[Finish (完了)]​ をクリックします。

API 仕様のない [New Mule Project (新規 Mule プロジェクト)] ウィンドウ
Figure 11. [New Mule Project (新規 Mule プロジェクト)] ウィンドウ。

この方法を使用すると、APIkit スキャフォールディングによって、次のコンポーネントを含む骨格 RAML ファイルおよび XML 設定ファイルが生成されます。

  • メインフロー ​<flow name="main-api"></flow>

  • メインフローの HTTP Listener 設定

  • APIkit Router コンポーネント

  • エラーハンドラー

後で API 仕様をバックエンドファーストの APIkit 設計に追加し、バックエンドフローを生成して、アプリケーションのビルドを続行できます。詳細は、​[Build Applications Workflows]​を参照してください。

バックエンドフローを生成して新規 APIkit プロジェクトを開始

このタスクを実行するには、次の前提条件を満たしている必要があります。

  • Studio (RAML エディター) で RAML ファイルを作成した

  • HTTP Listener および APIkit Router コンポーネントを含むメインフローを作成した

Studio で RAML ファイルを作成するときに、バックエンドフローの生成は省略可能です。RAML ベースの API ではエラー処理が自動的に生成されます。APIkit プロジェクトを開始するには、バックエンドフローをメインフローから生成する必要があります。次の手順に従います。

  1. Package Explorer で、プロジェクト名を右クリックします。

  2. [Mule] > [Generate Flows From REST API (REST API からフローを生成)]​ を選択します。

Mule プロジェクトからのバックエンドフローの生成
Figure 12. Mule プロジェクトからのバックエンドフローの生成。

APIkit スキャフォールディング手法によってバックエンドフローがメインフローの後に生成されます。次に、API をテストするコールを実行し、実装を最終処理することで、アプリケーションのビルドを続行することができます。詳細は、​[Build Applications Workflows]​を参照してください。

アプリケーションワークフローのビルド

APIkit の基本構造とスキャフォールディング手法を理解したら、次のワークフローを参考にして、APIkit プロジェクトの作成、Mule フローの生成、API へのコールの実行、および実装の最終処理を行って、目的のアプリケーションをビルドします。

さらに次のことができます。

API からのデータのコンシューム

アプリケーションをビルドしたら、API からのデータのコンシュームを開始できます。ガイドラインについては、​「API からのデータのコンシューム」のドキュメント​を参照してください。