American Flights API 仕様の実装

これは進行中のベータリリースです。ベータ状態での Anypoint Code Builder の使用には、該当するベータサービス契約条件が適用されます。

Anypoint Exchange から American Flights API 仕様をインポートします。開発している American Flights プロジェクトに仕様をスキャフォールディングして、API にエンドポイントを実装するロジックを追加します。

始める前に

American Flights API 仕様をインポートしてスキャフォールディングする

Anypoint Exchange から American Flights API 仕様をインポートして American Flights インテグレーションプロジェクトのインターフェースにスキャフォールディングします。

  1. Anypoint Code Builder でインテグレーション (​american-ws-anypoint-code-builder​) を開きます。

    このアプリケーションについての詳細は、American Flights プロセスの統合を参照してください。

  2. コマンドパレットを開きます。

    手順を表示
    • キーボードショートカットを使用する。

      • Mac: Cmd+Shift+p

      • Windows: Ctrl+Shift+p

    • デスクトップ IDE で、​[View (表示)]​ > ​[Command Palette (コマンドパレット)]​ を選択する。

    • クラウド IDE で、​​ (メニュー) アイコンをクリックし、​[View (表示)]​ > ​[Command Palette (コマンドパレット)]​ を選択する。

  3. 次のコマンドを入力します。

    MuleSoft: Import Asset from Exchange
  4. [Rest API]​ を選択します。

    [MuleSoft: Import Asset from Exchange (MuleSoft: Exchange からアセットをインポート)] を選択した後の強調表示された [Rest API] オプション
  5. プロンプトが表示されたら、Anypoint Platform にログインして、拡張機能で外部 Web サイトにサインインして開くことおよび Visual Studio Code を開くことを許可します。

  6. American Flights API 仕様の名前を入力します。次に例を示します。

    American Flights API

    この仕様についての詳細は、American Flights API 仕様の設計を参照してください。

  7. 名前に一致するアセットのリストが IDE に読み込まれるまで待機します。

    強調表示されている American Flights API アセット
  8. バージョンを要求されたら、インポートする API のバージョン (​1.0.0​ など) を選択します。

  9. API 連動関係をスキャフォールディングするように促されたら、​[Yes (はい)]​ を選択します。

    このステップでは、プロジェクトの ​pom.xml​ ファイルに API 仕様を連動関係として追加し、新しい設定 XML ファイル (​american-flights-api.xml​ など) を作成します。

    [Package Explorer] セクション内で強調表示されている American-flights.xml ファイル
  10. インターフェースファイルを調べる​に進みます。

インターフェースファイルを調べる

キャンバス UI と設定 XML でインターフェースのスキャフォールディング済みフローとエラーハンドラーを調べます。

メインフローが強調表示されている
  1. [EXPLORER]​ メニューから、目的のインターフェースの設定ファイル (​american-flight-api.xml​ など) を開きます。

  2. [Flow List (フローリスト)]​ パネルを使用して、フロー間を移動します。

    強調表示されている American-flights-api-main フロー
    1. [Flow List (フローリスト)]​ パネルを展開します。

    2. リストからフローを選択します。

    3. キャンバス UI でフローをクリックすると、設定 XML 内のフローが強調表示されます。

  3. 設定 XML で、API 仕様のエンドポイント用に作成したフローを見つけます。

    • get:\flights

      <flow name="get:\flights:american-flight-api-config">
      </flow>
    • post:\flight

      <flow name="post:\flights:application\json:american-flight-api-config">
      </flow>
    • get:\flights{ID}

      <flow name="get:\flights\(ID):application\json:american-flight-api-config">
      </flow>
  4. 自動的に生成されたエラーハンドラーコンポーネントを確認します。次に例を示します。

    <apikit:router config-ref="american-flights-api-config" />
    <error-handler>
        <on-error-propagate type="APIKIT:BAD_REQUEST">
    
        </on-error-propagate>
        <on-error-propagate type="APIKIT:NOT_FOUND">
    
        </on-error-propagate>
        <on-error-propagate type="APIKIT:METHOD_NOT_ALLOWED">
    
        </on-error-propagate>
        <on-error-propagate type="APIKIT:NOT_ACCEPTABLE">
    
        </on-error-propagate>
        <on-error-propagate type="APIKIT:UNSUPPORTED_MEDIA_TYPE">
    
        </on-error-propagate>
        <on-error-propagate type="APIKIT:NOT_IMPLEMENTED">
    
        </on-error-propagate>
    </error-handler>
  5. インターフェースおよび実装ファイルに名前を付ける​に進みます。

インターフェースおよび実装ファイルに名前を付ける

American Flights プロジェクトのインターフェースおよび実装ファイルにわかりやすい名前を付けます。インターフェースでアプリケーションへのすべての受信要求を受け取ります。インターフェースのスキャフォールディング済みフローで要求を検証してルーティングします。実装でインターフェースへのコールのためのバックエンドロジックを提供します。

american-flight-api-acb.xml ファイルのコンテキストメニュー内で強調表示されている [Rename (名前変更)] オプション
  1. ファイル名を右クリックし、​[Rename (名前変更)]​ を選択して、新しい名前を指定することで、​american-flight-api-acb.xml​ を ​interface.xml​ に名前変更します。

  2. american-ws-anypoint-code-builder.xml​ を ​implementation.xml​ に名前変更します。

  3. インターフェースを介してエンドポイントを設定​に進みます。

インターフェースを介してエンドポイントを設定

インターフェースを介して HTTP 要求を受信するには、HTTP リスナーを ​implementation.xml​ から削除し、インターフェースファイル (​interface.xml​) で Flow Ref コンポーネント (​<flow-ref/>​) を実装の ​getFlights​ フローに追加します。

  1. implementation.xml​ を開きます。

    implementation.xml ファイル内で強調表示されている HTTP リスナー
  2. 設定 XML から ​HTTP /flights​ リスナー XML を削除します。

    <http:listener path="flights" config-ref="inbound-request" doc:name="HTTP /flights" />
    結果のフローを表示するには、クリックしてください。
    <flow name="getFlights">
        <db:select doc:name="Query Flights" doc:id="pvuqsc" config-ref="Database_Config" >
            <db:sql>
                <![CDATA[Select * FROM american]]>
            </db:sql>
        </db:select>
    
        <ee:transform doc:name="Transform Message" doc:id="uniqueId" >
            <ee:message >
                <ee:set-payload >
                    <![CDATA[
                    %dw 2.0
                    output application/json
                    ---
                    payload map ( payload01 , indexOfPayload01 ) -> {
                      ID: payload01.ID,
                      code: (payload01.code1 default "") ++ (payload01.code2 default ""),
                      price: payload01.price default 0,
                      departureDate: payload01.takeOffDate as String default "",
                      origin: payload01.fromAirport default "",
                      destination: payload01.toAirport default "",
                      emptySeats: payload01.seatsAvailable default 0,
                      plane: {
                        "type": payload01.planeType default "",
                        totalSeats: payload01.totalSeats default 0
                      }
                    }
                    ]]>
                </ee:set-payload>
            </ee:message>
        </ee:transform>
    
    </flow>
  3. Anypoint Code Builder で ​interface.xml​ ファイルを開きます。

  4. get:\flights:american-flights-api-config​ フローを見つけます。

    <flow name="get:\flights:american-flights-api-config">
        <logger level="INFO" message="get:\flights:american-flights-api-config" />
    </flow>
  5. フローの ​<logger/>​ 要素の上に、実装のフロー ​getFlights​ を参照する Flow Reference コンポーネント (​<flow-ref/>​) を追加します。

    <flow name="get:\flights:american-flights-api-config">
        <flow-ref doc:name="getFlightsRef" name="getFlights"/>
        <logger level="INFO" message="get:\flights:american-flights-api-config" />
    </flow>
  6. 省略可能: インターフェースを介してフローをトリガーし、実装を使用して要求を処理します。

    詳細は、デプロイメント環境でのフローのトリガーを参照してください。

  7. American Flights アプリケーションのデバッグに進みます。