Studio での API 開発

Mule アプリケーションが常に API 仕様の 1 つの情報源を参照するように、MuleSoft では API 仕様を設計、パブリッシュ、実装するためのワークフローが導入されています。

  1. API 仕様を設計します。
    API 仕様の作成およびパブリッシュにはビジュアルエディターを使用​することも​コードエディターを使用​することもできます。

  2. その API 仕様を Exchange にパブリッシュします。
    新しく設計した API を Exchange 連動関係として組織全体で使用できるようにします。API を変更するごとに、新しいバージョンの API 仕様を Exchange にパブリッシュできます。​「API バージョン設定のベストプラクティス」​を参照してください。

  3. API 仕様を Exchange から Studio にインポートします。
    API 仕様は Exchange からインポート​することも ​Maven からインポート​することもできます。API 仕様は連動関係として Anypoint Studio にインポートされます。つまり、Mule アプリケーションプロジェクトに、実装している特定の API バージョンへの参照が保持されることになります。Studio は API を監視し、新しいバージョンが使用可能になったら通知します。

このワークフローにより、RAML と OAS 2.0 および 3.0 の両方の仕様が使用でき、Studio 7.8.x 以降と Mule Runtime Engine 4.1.4 以降が必要となります。

Exchange 連動関係としての API 仕様

アプリケーションを構成するモジュールを管理するのと同じように Mule アプリケーションの API を管理できます。Exchange をすべての Mule アプリケーション連動関係の統一リポジトリとして利用し、連動関係の最新バージョンを監視して、最新の API 要件でアプリケーションを最新に保つことができます。

API の実装によって各反復が変更される場合もあるため、新しい仕様に合わせて Mule アプリケーションを更新できるように追跡する必要があります。こうした変更を追跡できるようにするには、API 仕様をプロジェクトの連動関係として扱います。これにより、仕様の設計が変更されるごとに、Studio から管理できる新しい API バージョンを API によってパブリッシュされ、新しい API バージョンに合わせてアプリケーションを更新できます。

Exchange からインポートした各 API バージョンはプロジェクトの構造にローカルコピーとしては保存されませんが、Exchange の API バージョン連動関係への参照として保存されます。Exchange の API バージョンを参照することで、Studio はバージョンの状況を定期的に確認し、新しいバージョンが使用できるときにアラートできます。

RAML および OAS 仕様のスキャフォールディング

API は Anypoint Design Center で RAML または OAS 2.0 および 3.0 仕様を使用して設計できます。これらの仕様をフローの連動関係としてインポートする場合、API 仕様で記述されたエンドポイントに基づいてキャンバスで自動的にフローを生成 (スキャフォールディング) できます。

Studio は APIkit を利用してフローをスキャフォールディングし、API 仕様からより簡単に Mule アプリケーションを開発できるようにします。

Studio では、プロジェクトの連動関係として Exchange からインポートされた OAS または JSON スキーマフラグメントを参照するスキャフォールディング API 仕様はサポートされません。その代わりに、仕様でこれらのフラグメントをインラインで提供するか、またはプロジェクトディレクトリ内で手動で作成したフラグメントファイルを使用して、仕様をこれらのフラグメントでスキャフォールディングすることができます。Exchange の RAML フラグメントは、この制限の影響を受けません。

プロジェクトのローカルコピーとしての API 仕様

RAML API 仕様は引き続き​ハードドライブ​または ​Design Center から直接​プロジェクトの構造の ​/src/main/api/​ ディレクトリにインポートできます。このプロセスでは、プロジェクトの構造に API のローカルコピーが作成され、インポートした API はプロジェクトへのスタンドアロンの添付ファイルとして機能します。つまり以降のすべてのアップグレードでは手動のインポートが必要になります。

ローカルコピーとしてプロジェクトの構造にインポートした API が Studio 環境の外部で更新された場合は、API をプロジェクトに再インポートし、更新された仕様に基づいてすべてのフローを再生成する必要があるため、仕様の重複するコピーを作成するおそれがあります。

RAML API 仕様は、プロジェクトの構造内にローカルコピーとしてのみ保持できます。

Studio の API 仕様プロジェクトとしての API 仕様

Studio で API 仕様プロジェクトを開始して Design Center と同期​できます。Studio ではバージョン管理システム (VCS) 機能を使用して Studio のワークスペースと Design Center 間の API 仕様の同期を保ちます。

VCS 機能を有効にした状態で API 仕様を Design Center から API 仕様プロジェクトとしてインポートし、Studio を使用して API 仕様を編集してから変更内容を Design Center と同期することもできます。

  1. Design Center で API 仕様を設計します。
    API 仕様の作成およびパブリッシュにはビジュアルエディターを使用​することも​コードエディターを使用​することもできます。

  2. API 仕様を Design Center から Studio にインポートします。
    API 仕様を Design Center と同期させる​ことによって、API 仕様を編集可能なアセットとしてインポートできます。

また、API 連動関係としてインポートした API 仕様もプロジェクトで編集できます。

  1. API 仕様を ​Exchange から Studio​ にインポートします。
    API 仕様は連動関係として Anypoint Studio にインポートされます。つまり、Mule アプリケーションプロジェクトに、実装している特定の API バージョンへの参照が保持されることになります。Studio は API を監視し、新しいバージョンが使用可能になったら通知します。

  2. プロジェクトにインポートした API 仕様を選択して、​Studio で API 仕様を編集して、​後で変更内容を Design Center と同期させます。

Studio では、API 仕様をオフラインで編集する場合の VCS 機能でのみ EGit プラグインを使用します。Studio は、Mule アプリケーションプロジェクトでは (独自の VCS を使用してバージョンを追跡できるため) EGit プラグインをサポートしません。