Flex Gateway新着情報
Governance新着情報
Monitoring API Manager
これは進行中のベータリリースです。ベータ状態での Anypoint Code Builder の使用には、該当するベータサービス契約条件が適用されます。 |
API 仕様を作成したら、Anypoint Code Builder を使用して API を実装プロジェクト (Mule アプリケーション) にスキャフォールディングします。
Anypoint Code Builder は、Exchange からプロジェクトの連動関係としてインポートする OAS または JSON スキーマフラグメントを参照するスキャフォールディング API 仕様をサポートしていません。 代わりに、仕様内でインラインでフラグメントを指定するか、プロジェクトディレクトリ内で手動で作成したフラグメントファイルを通じて、そのようなフラグメントを含む仕様をスキャフォールディングできます。Exchange の RAML フラグメントは、この制限の影響を受けません。 |
Anypoint Code Builder では、仕様で定義された情報を使用して実装プロジェクトの基本インターフェースを自動生成します。 このインターフェースには、各エンドポイントのフロー、XML ベースの組み込みルーター、エラーハンドラーが含まれており、それらをその後 Mule アプリケーション内に実装します。
API を実装するために使用するプロセスは、すでにインテグレーションプロジェクトを作成しているか Exchange に仕様をパブリッシュしているかによって異なります。
Exchange の仕様を使用して API をスキャフォールディングする方法は、次のとおりです。
新しいインテグレーションプロジェクトにスキャフォールディングするには、「API をスキャフォールディングしてインテグレーションプロジェクトを作成する」を参照してください。
既存のインテグレーションプロジェクトにスキャフォールディングするには、「API 仕様を既存の実装プロジェクトにインポートする」を参照してください。
仕様を Exchange にパブリッシュせずに API をインテグレーションプロジェクトにスキャフォールディングするには、「API の反復的な設計と実装」を参照してください。
API 仕様を作成してテストします。
必要に応じて、インテグレーションプロジェクト (Mule アプリケーション) を作成します。
インテグレーションプロジェクトをまだ作成していない場合は、Anypoint Code Builder を使用して API を新しい Mule プロジェクトにスキャフォールディングします。
IDE のアクティビティバーで、 (Anypoint Code Builder) アイコンをクリックします。
[Quick Actions (クイックアクション)] から [Implement an API (API を実装)] をクリックします。
[Implement an API Specification (API 仕様を実装)] フォームに入力します。
項目名 | Field Value (項目値) |
---|---|
Project Name (プロジェクト名) |
プロジェクトの一意の名前。 この名前はタイトルおよびプロジェクトファイルの名前として使用されます。
たとえば、プロジェクト名が「OAS Integration」 (OAS インテグレーション) の場合、プロジェクトファイル名は |
Project Location (プロジェクトの場所) |
|
Show filters (検索条件を表示) |
詳細は、検索結果の絞り込みを参照してください。 |
Exchange で API 仕様を検索します。
API 仕様の名前の入力を開始します。
Enter キーを押して、可能な結果のリストを表示します。
[Add Asset (アセットを追加)] をクリックして、選択した API 仕様を追加します。
選択した API 仕様がフォームに表示されます。次に例を示します。
フォームで選択された [OAS Example (OAS 例)] API"]
[Create Project (プロジェクトを作成)] をクリックします。
プロジェクトを作成すると、Anypoint Code Builder で次の操作が実行されます。
プロジェクトの pom.xml
ファイルに API 仕様を連動関係として追加します。
<dependency>
<groupId>e91cab06-650b-4634-9c6f-5bc4f4fc4d17</groupId>
<artifactId>OAS-Example</artifactId>
<version>1.0.1</version>
<classifier>oas</classifier>
<type>zip</type>
</dependency>
API を新しいインテグレーションプロジェクトにスキャフォールディングして、設定 XML ファイルを開きます。
設定 XML ファイルには、仕様の各エンドポイントのフロー、エラーハンドラー、組み込みルーターを含む、インテグレーションプロジェクトのインターフェースが含まれます。次に例を示します。
この例には以下が含まれます。
メインフロー
組み込みルーターを含む HTTP リスナー
いくつかのエラーハンドラー
GraphQL API の場合、Anypoint Code Builder では、各 Mule フローのソースとしてデータフェッチャー (<graphql-router:data-fetcher>
) も作成されます。
データフェッチャーについての詳細は、「GraphQL API の実装 tutorial for an example GraphQL API and データソースへの GraphQL API のマッピング」を参照してください。
Mule アプリケーション内でインターフェースを実装できるようになりました。
すでにインテグレーションプロジェクトを作成している場合、Exchange から仕様をインポートすることで API をスキャフォールディングできます。 この場合、Anypoint Code Builder では、インテグレーションプロジェクトのインターフェース用の個別の設定 XML ファイルが作成されます。
Anypoint Code Builder の [Explorer] ビューで、my-project-name
などのインテグレーションプロジェクトを開きます。
コマンドパレットを開きます。
キーボードショートカットを使用する。
Mac: Cmd+Shift+p
Windows: Ctrl+Shift+p
デスクトップ IDE で、[View (表示)] > [Command Palette (コマンドパレット)] を選択する。
クラウド IDE で、 (メニュー) アイコンをクリックし、[View (表示)] > [Command Palette (コマンドパレット)] を選択する。
「import」
と入力し、次のコマンドを選択します。
MuleSoft: Import Asset from Exchange
API 仕様の言語に応じて異なります。
OAS または RAML では Rest API
GraphQL API
プロンプトが表示されたら、[Allow (許可)] をクリックして、Anypoint Platform を使用したサインインを許可し、ビジネスグループを選択します。
API 仕様の名前 (「OAS Example」
(OAS 例) など) を入力して Enter キーを押します。
名前に一致するアセットのリストが IDE に読み込まれるまで待機します。
インポートする API 仕様を選択します。
プロンプトで、API 仕様のバージョン (v1.0.1
など) を選択します。
API 連動関係をスキャフォールディングするように促されたら、[Yes (はい)] を選択します。
API 連動関係をスキャフォールディングすると、Anypoint Code Builder では次の操作が実行されます。
プロジェクトの pom.xml
ファイルに API 仕様を連動関係として追加します。
<dependency>
<groupId>e91cab06-650b-4634-9c6f-5bc4f4fc4d17</groupId>
<artifactId>OAS-Example</artifactId>
<version>1.0.1</version>
<classifier>oas</classifier>
<type>zip</type>
</dependency>
新しい設定 XML ファイル (oas-example.xml
など) をプロジェクトに追加します。
新しい設定 XML ファイルには、仕様の各エンドポイントのフロー、エラーハンドラー、組み込みルーターを含む、インテグレーションプロジェクトのインターフェースが含まれます。次に例を示します。
この例には以下が含まれます。
メインフロー
組み込みルーターを含む HTTP リスナー
いくつかのエラーハンドラー
GraphQL API の場合、Anypoint Code Builder では、各 Mule フローのソースとしてデータフェッチャー (<graphql-router:data-fetcher>
) も作成されます。
データフェッチャーについての詳細は、「GraphQL API の実装 tutorial for an example GraphQL API and データソースへの GraphQL API のマッピング」を参照してください。
Mule アプリケーション内でインターフェースを実装できるようになりました。
API 仕様をインターフェースにスキャフォールディングしたら、UI キャンバスと設定 XML でインターフェースのスキャフォールディング済みフローとエラーハンドラーを調べます。
[Explorer] ビューで、目的のインターフェースの設定 XML ファイルを開きます。
キャンバス UI が自動的に開かない場合は、アクティビティバーの (Show Mule graphical mode (Mule グラフィカルモードを表示)) アイコンをクリックしてキャンバス UI を開きます。
[Flow List (フローリスト)] をクリックして、フロー間を移動します。
設定 XML で、API 仕様のエンドポイント用に作成したフローを見つけます。
<flow name="oas-example-console">
<http:listener config-ref="oas-example-httpListenerConfig" path="/console/*">
<http:response statusCode="#[vars.httpStatus default 200]">
<http:headers>#[vars.outboundHeaders default {}]</http:headers>
</http:response>
<http:error-response statusCode="#[vars.httpStatus default 500]">
<http:body>#[payload]</http:body>
<http:headers>#[vars.outboundHeaders default {}]</http:headers>
</http:error-response>
</http:listener>
<apikit:console config-ref="oas-example-config" />
<error-handler>
<on-error-propagate type="APIKIT:NOT_FOUND">
<ee:transform doc:name="Transform Message">
<ee:message>
<ee:set-payload><![CDATA[%dw 2.0
output application/json
---
{message: "Resource not found"}]]></ee:set-payload>
</ee:message>
<ee:variables>
<ee:set-variable variableName="httpStatus">404</ee:set-variable>
</ee:variables>
</ee:transform>
</on-error-propagate>
</error-handler>
</flow>
自動的に生成されたエラーハンドラーコンポーネントを確認します。
<apikit:console config-ref="oas-example-config" />
<error-handler>
<on-error-propagate type="APIKIT:NOT_FOUND">
<ee:transform doc:name="Transform Message">
<ee:message>
<ee:set-payload><![CDATA[%dw 2.0
output application/json
---
{message: "Resource not found"}]]></ee:set-payload>
</ee:message>
<ee:variables>
<ee:set-variable variableName="httpStatus">404</ee:set-variable>
</ee:variables>
</ee:transform>
</on-error-propagate>
</error-handler>
API 仕様を既存のインテグレーションにインポートすると、Anypoint Code Builder で設定 XML ファイルの名前が API 仕様名に基づいて自動的に設定されます。 ファイル名を、たとえばその機能に基づいてわかりやすい名前に変更することができます。次に例を示します。
interface.xml
でアプリケーションへのすべての受信要求を受け取り、スキャフォールディング済みフローで要求を検証してルーティングします。
implementation.xml
では、インターフェースへのコールのためのバックエンドロジックを提供します。
ファイルの名前を変更するには、ファイルを右クリックして [Rename (名前変更)] を選択し、新しい名前を指定します。