Flex Gateway新着情報
Governance新着情報
Monitoring API Manager最初に American Flights の例の基本インテグレーションを作成します。このインテグレーションは、American Flights API からの要求を処理するいくつかのロジックを提供する Mule アプリケーションです。
次の手順を実行します。
American Flights API 仕様の設計 (API 仕様の作成から Exchange への仕様のパブリッシュまでのすべてのタスク)
Postman や Advanced REST クライアントなどの REST クライアントのインストール。
American Flights の例のインテグレーションアプリケーションを開始します。
IDE のアクティビティバーで、 (Anypoint Code Builder) アイコンをクリックします。
[Quick Actions (クイックアクション)] から [Develop an Integration (インテグレーションを開発)] をクリックします。
[Develop an Integration (インテグレーションを開発)] フォームにインテグレーションプロジェクトプロパティを入力します。
[Project Name (プロジェクト名)] で「american-ws-anypoint-code-builder」
と入力します。
[Project Location (プロジェクトの場所)] で [Browse (参照)] を選択してホームディレクトリを選択します。
[Create (作成)] で、[Empty Project (空のプロジェクト)] を選択します。
Mule Runtime および Java バージョンを選択します。
サポートされるバージョンのいずれかを選択できます。IDE は、バージョン設定をプロジェクトの mule-artifact.json
ファイルに保存します。
作成するプロジェクトのデフォルトの Mule Runtime バージョンと Java バージョンを設定するには、Mule、Java、コネクタのバージョン設定を参照してください。
[Create Project (プロジェクトを作成)] をクリックします。
IDE では、プロジェクト用に選択した Mule Runtime バージョンまたは Java バージョンをダウンロードする必要がある場合に通知が表示されます。Mule Runtime は ${user.home}/AnypointCodeBuilder/runtimes
にダウンロードされ、選択した Java バージョンは ${user.home}/AnypointCodeBuilder/java
にダウンロードされます。
リスナーの目的はフローをトリガーすることです。Set Payload でインテグレーション用の一部のテストデータを提供します。
プロジェクトのキャンバスおよび設定 XML が開いていない場合、[Explorer] から american-ws-anypoint-code-builder.xml
に移動します。
1 | キャンバス UI では、Mule フローまたはサブフローを視覚的に表現する領域が提供されます。 |
2 | 設定 XML エディターには、Mule アプリケーションの設定ファイルが表示されます。 |
キャンバスで [Build a Flow (フローをビルド)] を選択して、Mule インテグレーションアプリケーション内で空のフローを作成します。
キャンバス UI または設定 XML からフローのデフォルト名を変更します。
キャンバス UI から
設定 XML から
[Flow name1 (フロー 名前 1)] をクリックして Flow コンポーネントの設定パネルを開き、フロー名を getFlights
に変更し、チェックマークをクリックして新しい名前を設定します。
フローのデフォルトの名前 (name1 (名前 1)
) を getFlights
に置き換えます。
自動的に生成されたフロー要素 | 名前変更されたフロー要素 |
---|---|
|
|
HTTP Listener コンポーネントを設定 XML に追加します。
キャンバス UI の Flow コンポーネントの後で ([Add component (コンポーネントを追加)]) アイコンをクリックします。
[HTTP] の検索結果から [Listener] を選択します。
設定 XML ファイルでは HTTP リスナーの XML が <flow/>
要素に追加されます。次に例を示します。
<flow name="getFlights" >
<http:listener path="" config-ref="" doc:name="Listener" doc:id="ojzfry" />
</flow>
設定 XML で、<flow> 開始タグの前にカーソルを置いて「http」
と入力します。
組み込み <http:listener-config/>
スニペットを選択します。
<http:listener-config name="HTTP_Listener_config" >
<http:listener-connection host="0.0.0.0" port="8081" />
</http:listener-config>
メニュー内では、スニペットは 2 次元ボックスアイコンで表されている部分的に設定された Mule コンポーネントです。3 次元ボックスアイコンは、事前設定されていない基本コンポーネント XML 用に予約されています。コードスニペットについての詳細は、コードスニペットの操作を参照してください。
設定 XML で、HTTP リスナー設定 <http:listener-config/>
の属性を設定します。
<http:listener-config name="inbound-request" doc:name="Listener Config" doc:id="b5c62f-a84a3a">
<http:listener-connection host="0.0.0.0" port="8081"/>
</http:listener-config>
<http:listener-config/>
とその子要素 <http:listener-connection/>
で、属性を例で指定された値に設定します。
[name (名前)]
属性が inbound-request
に変更されています。doc:id
はランダムに生成されます。変更する必要はありません。
HTTP リスナー設定の属性を設定します。
キャンバス UI から
設定 XML から
[Listener] 操作をクリックして、その設定パネルを開き、HTTP Listener の属性を次の値に設定します。
1 | 操作名を HTTP /flights に変更します。 |
2 | 設定参照ドロップダウンメニューから [inbound-request] を選択します。 |
3 | [Path (パス)] 属性を [flights (フライト)] に設定します。 |
<http:listener/>
で、属性を例で指定された値に設定します。
<flow name="getFlights">
<http:listener path="flights" config-ref="inbound-request" doc:name="HTTP /flights" />
</flow>
キャンバス UI から、HTTP Listener 操作の後に Set Payload コンポーネントを追加します。
Set Payload コンポーネント属性を設定します。
キャンバス UI から
設定 XML から
[Set Payload] コンポーネントをクリックして、その設定パネルを開き、属性を次の値に設定します。
1 | コンポーネント名を Set Response に変更します。 |
2 | [Value (値)] 属性を [Flight info (フライト情報)] に設定します。 |
<set-payload/>
で、属性を例で指定された値に設定します。
<http:listener-config name="inbound-request" doc:id="b5c62f-a84a3a">
<http:listener-connection host="0.0.0.0" port="8081" />
</http:listener-config>
<flow name="getFlights" >
<http:listener path="flights" config-ref="inbound-request" doc:name="HTTP /flights" doc:id="htprur" />
(1)
<set-payload value="Flight info" doc:name="Set Response" doc:id="e43e98-1a9a01"/>
</flow>
1 | value 属性を「Flight info」 (フライト情報) に設定し、doc:name を「Set Response」 (応答を設定) に設定します。 |
設定 XML の <http:listener-config/>
の前で [Test Connection (接続をテスト)] をクリックし、HTTP リスナー接続を確認します。
UI では次の状況が提供されます。
Verifying connection inbound-request (接続のインバウンド要求を検証中): テストが進行中であることを示します。
Connection is valid (接続は有効): 正常に接続されていることを示します。
Invalid Connection Got status code: 500 when trying to resolve a Mule Runtime operation (Mule Runtime 操作を解決しようとしているときに無効な接続で状況コード 500 を取得): 接続エラーを示します。
一般的なコード 500
エラーは、[port 8081: Address already in use (ポート 8081: アドレスはすでに使用中)]
です。ポート競合の場合、別のポート (8082
など) を設定して設定をリセットします。
[Connection is valid (接続は有効)] メッセージを受け取ったら、デバッグモードでアプリケーションを実行するに進みます。
[Run and Debug (実行とデバッグ)] パネルを開きます。
アクティビティバーの (Run and Debug (実行とデバッグ)) アイコンをクリックする。
キーボードショートカットを使用する。
Mac: Cmd+Shift+d
Windows: Ctrl+Shift+d
デスクトップ IDE で、[View (表示)] > [Run (実行)] を選択する。
クラウド IDE で、 (メニュー) アイコンをクリックし、[View (表示)] > [Run (実行)] を選択する。
[Debug Mule Application (Mule アプリケーションをデバッグ)] で ([Start Debugging (F5) (デバッグを開始 (F5))]) アイコンをクリックします。
Anypoint Code Builder で Maven を使用してアプリケーションが構築され、埋め込み Mule Runtime Engine にデプロイされます。
[Run (実行)] > [Start without Debugging (デバッグなしで実行)] を使用すると、エラーが発生します。
IDE から、コンソールのターミナルウィンドウを開きます。
デスクトップ IDE で、[View (表示)] > [Terminal (ターミナル)] を選択する。
クラウド IDE で、 (メニュー) アイコンをクリックし、[Terminal (ターミナル)] > [New Terminal (新規ターミナル)] を選択する。
いずれかの IDE で、Ctrl キーを押してからバッククォートキー (`) を押す。
*******************************************************************************
* - - + APPLICATION + - - * - - + DOMAIN + - - * - - + STATUS + - - *
*******************************************************************************
* american-ws-anypoint-code-builder-1.0.0-SNAPS * default * DEPLOYED *
*******************************************************************************
アプリケーションをテストするに進みます。
IDE のターミナルを使用してフローをトリガーします。
/flights
エンドポイントへの URL を使用してターミナルから curl
コマンドを実行し、フローをトリガーします。
> curl http://0.0.0.0:8081/flights
詳細は、「フローをトリガーする」を参照してください。
REST クライアントまたはブラウザーで応答 [Flight info (フライト情報)] がないかを確認します。
この応答を受け取っていない場合、または接続エラーを受け取った場合、XML 設定を見直して、アプリケーションがデプロイされていることを確認し、HTTP リスナー接続を再確認します。
[Flight info (フライト情報)] 応答を受け取ったら、アプリケーションを停止するに進みます。
Anypoint Code Builder のツールバーから停止アイコンを選択します。
アプリケーションからデータベースへの接続に進み、Exchange からコネクタをインポートして、American Flights API のフライトに関するデータを返す既存のデータベースに接続します。