アプリケーション開発ライフサイクル中に 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 インターフェース
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 は、提供された定義に対して要求を検証し、メッセージを強化し (メッセージにデフォルト値を追加するなど)、要求をフローに転送する主要なメッセージプロセッサーです。また、ユーザー要求の転送中、検証中、または処理中にエラーが発生した場合、ルーターはエラーメッセージを出力します。
APIkit プロジェクトを開始して Mule フローを作成
Studio で新しい APIkit プロジェクトを開始するときに、API 定義ファイルをインポートするオプションがあります。ファイルをインポートすると、APIkit スキャフォールディングメカニズムによって API のさまざまなフローが生成されます。Anypoint Studio で APIkit プロジェクトを開始する方法は 3 つあります。
API 定義ファイルを使用して新しい APIkit プロジェクトを開始
既存の RAML または WSDL ファイルをインポートするか、ファイルの URL を参照してプロジェクトを開始する場合、次の方法を使用します。
-
[File (ファイル)] > [New (新規)] > [Mule Project (Mule プロジェクト)] を選択します。
-
[Project Name (プロジェクト名)] に、プロジェクトの名前 (「myproject」など) を入力します。
-
デフォルトの EE ランタイム (Mule Server 4.2.0 EE など) を選択するか受け入れます。
-
[API Implementation (API 実装)] で、[Specify API Definition File Location or URL (API 定義ファイルの場所または URL を指定)] を選択します。
-
[Location (場所)] で、次のいずれかを実行します。
-
Design Center で
api.raml ファイルを作成している場合は、[Design Center] を選択します。必要に応じて Anypoint Platform にログインし、api.raml を選択します。 -
Design Center で RAML ファイルを作成していない場合は、[Browse Files (ファイルを参照)] を選択し、テキストエディターで作成した RAML または WSDL ファイルを選択します。WSDL ファイルの場合、ドロップダウンメニューからサービスとポートを選択するか、デフォルトを受け入れます。
-
-
[Location (場所)] のデフォルトオプションを受け入れて、[Finish (完了)] をクリックします。
この方法を使用すると、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 スキャフォールディングを示しています。
Studio では、REST API APIkit プロジェクトは次のようになります。
この図で示されている 5 つの項目は次を示しています。
-
Studio の Package Explorer に含まれるプロジェクトファイル。
api.raml ファイルは src/main/resources/api フォルダーの下にあります。 -
APIkit Router を含むメインフロー。
-
APIkit Console
-
エラー処理
-
リソースメソッドごとに生成されたフロー。
生成された最小限のフローは、REST 契約で要求されるコミュニケーション操作を満たします。
Studio では、SOAP API APIkit プロジェクトは次のようになります。
この図で示されている 4 つの項目は次を示しています。
-
Studio の Package Explorer に含まれるプロジェクトファイル。
example.wsdl ファイルは src/main/resources/api フォルダーの下にあります。 -
SOAP Router を含むメインフロー。
-
SOAP エラー応答テンプレート
-
SOAP メッセージテンプレートを含む、生成されたバックエンドフロー。
APIkit プロジェクトを作成したら、API をテストするコールを実行し、実装を最終処理することで、アプリケーションのビルドを続行することができます。詳細は、[Build Applications Workflows]を参照してください。
新しい APIkit プロジェクトを開始
API 仕様ファイルなしで APIkit プロジェクトを開始し、後で API 仕様ファイルをプロジェクトに追加できる場合、この方法を使用します。APIkit は骨格 RAML ファイルと XML 設定ファイルを生成します。
-
[File (ファイル)] > [New (新規)] > [Mule Project (Mule プロジェクト)] を選択します。
-
[Project Name (プロジェクト名)] に、プロジェクトの名前 (「myproject」など) を入力します。
-
デフォルトの EE。ランタイム (Mule Server 4.2.0 EE など) を選択するか受け入れます。
-
[API Implementation (API 実装)] で、[Specify API Definition File Location or URL (API 定義ファイルの場所または URL を指定)] を選択しないでください。
これにより、バックエンドファーストの APIkit 設計が作成されます。 -
その他のデフォルトのオプションを受け入れて [Finish (完了)] をクリックします。
この方法を使用すると、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 プロジェクトを開始するには、バックエンドフローをメインフローから生成する必要があります。次の手順に従います。
-
Package Explorer で、プロジェクト名を右クリックします。
-
[Mule] > [Generate Flows From REST API (REST API からフローを生成)] を選択します。
APIkit スキャフォールディング手法によってバックエンドフローがメインフローの後に生成されます。次に、API をテストするコールを実行し、実装を最終処理することで、アプリケーションのビルドを続行することができます。詳細は、[Build Applications Workflows]を参照してください。
アプリケーションワークフローのビルド
APIkit の基本構造とスキャフォールディング手法を理解したら、次のワークフローを参考にして、APIkit プロジェクトの作成、Mule フローの生成、API へのコールの実行、および実装の最終処理を行って、目的のアプリケーションをビルドします。
さらに次のことができます。
-
既存の Mule プロジェクトの APIkit プロジェクトへの変換
既存の APIkit バックエンドファーストの設計への API 仕様の追加、API 定義ファイルの定義、メインフローの作成、バックエンド REST API フローの生成、アクションへの RAML リソースのマップを行います。
-
APIkit プロジェクトの変更、API Console のカスタマイズ、ヘッダーの設定、RAML ファイルの取得、機能以外の要件の実行、ロードバランサーの設定を行います。
-
APIkit OData 拡張を使用した OData 対応 API の作成
OData 要求を処理する Mule フローを生成します。
-
既存の Apache Maven プロジェクトに APIkit コンポーネントを追加します。
API からのデータのコンシューム
アプリケーションをビルドしたら、API からのデータのコンシュームを開始できます。ガイドラインについては、「API からのデータのコンシューム」のドキュメントを参照してください。