Flex Gateway新着情報
Governance新着情報
Monitoring API ManagerAnypoint Exchange にパブリッシュする前に Anypoint Code Builder を使用して API 仕様の作成、インポート、テストを行います。
IDE から Anypoint Code Builder で API 仕様プロジェクトを作成するか、MuleSoft VCS から仕様をインポートして API 仕様プロジェクトを作成します。
Anypoint Code Builder の機能を調べるには、oas-example API 仕様を使用してください。
Anypoint Code Builder で API 仕様プロジェクトを作成する手順は、次のとおりです。
IDE のアクティビティバーで、
 (Anypoint Code Builder) アイコンをクリックします。
[Quick Actions (クイックアクション)] から [Design an API (API を設計)] をクリックします。
[API Specification (API 仕様)] フォームに入力します。
| 項目名 | Field Value (項目値) | 
|---|---|
Project Name (プロジェクト名)  | 
プロジェクトの一意の名前。 この名前は Exchange での API 仕様のタイトル、仕様ファイルの名前、プロジェクトのルートディレクトリの名前として使用されます。
たとえば、プロジェクト名が「OAS Example」 (OAS 例) の場合、仕様ファイル名は  既存のプロジェクト名を再利用するには、その名前をすでに使用しているプロジェクトを最初に削除する必要があります。API 仕様とフラグメントの削除を参照してください。  | 
Project Location (プロジェクトの場所)  | 
|
API Type (API 種別)  | 
作成する API 仕様のエンティティの種別。 使用可能なオプションは、[REST API] と [AsyncAPI] です。 この手順でサンプルを使用するには、[REST API] を選択します。  | 
API Specification Language (API 仕様言語)  | 
サポートされる OAS および RAML バージョンを参照してください。 この手順でサンプルを使用するには、[OAS 3.0 (YAML)] を選択します。  | 
[Create Project (プロジェクトを作成)] をクリックします。
確認を促されたら、フォルダー内のファイルの作成者を信頼します。
プロジェクトの編集準備が整ったら、API プロジェクトのエディタービューで次の OAS 3.0 (YAML) 仕様のような仕様が開きます。
引き続き API 仕様を設計します。
要素を入力するときに、オートコンプリート (または Ctrl+Space) を使用すると、コンテキスト内で使用可能なオプションが表示されます。
MuleSoft VCS から API 仕様をインポートし、デスクトップまたはクラウド IDE で Git または VS Code と互換性のある別のソース管理システムを使用して、プロジェクトの同期を維持します。詳細は、API 設計プロジェクトのソース制御を参照してください。
コマンドパレットを開きます。
キーボードショートカットを使用する。
Mac: Cmd+Shift+p
Windows: Ctrl+Shift+p
デスクトップ IDE で、[View (表示)] > [Command Palette (コマンドパレット)] を選択する。
クラウド IDE で、
 (メニュー) アイコンをクリックし、[View (表示)] > [Command Palette (コマンドパレット)] を選択する。
次のコマンドを入力します。
MuleSoft: Import API Specification from MuleSoft VCS
Anypoint Platform にログインするように促されたら、IDE からログインします。
インポートプロセスを完了します。
[Select a Business Group (ビジネスグループを選択)] ポップアップからビジネスグループを選択します。
[APIs from MuleSoft VCS (MuleSoft VCS から API)] 項目で API 仕様を検索します。
仕様のフォルダーに移動するか、そのフォルダーを作成して、[Select target folder (対象フォルダーを選択)] をクリックします。
インポートが失敗したといったエラー (「Importing project a_project_name has failed (プロジェクト a_project_name のインポートに失敗しました)」) を受け取ったら、同じ名前のプロジェクトの対象フォルダーを確認します。インポートする前に重複する名前の問題に対処するには、設計プロジェクトを別の対象フォルダーにインポートするか、プロジェクトを IDE から削除することができます (API 仕様とフラグメントの削除を参照)。
必要に応じて、仕様を編集するか、引き続き仕様を設計します。
要素を入力するときに、オートコンプリート (または Ctrl+Space) を使用すると、コンテキスト内で使用可能なオプションが表示されます。
変更を MuleSoft VCS と同期できます。
この機能は、MuleSoft VCS からインポートした API プロジェクトでのみ使用できます。作業内容を別の SCM に保存することもできます。SCM オプションについては、ソースファイルの制御を参照してください。
API を設計しているときに内部処理の進行状況を追跡する手順は、次のとおりです。
出力パネルを開きます。
キーボードショートカットを使用する。
Mac: Cmd+Shift+u
Windows: Ctrl+Shift+u
デスクトップ IDE で、[View (表示)] > [Output (出力)] を選択する。
クラウド IDE で、
 (メニュー) アイコンをクリックし、[View (表示)] > [Output (出力)] を選択する。
ドロップダウンリストから [Mule DX Server (Mule DX サーバー)] を選択します。
スキャフォールディングエラーのみを表示するには、リストから [Mule DX Server: Scaffolding (Mule DX サーバー: スキャフォールディング)] を選択します。
コンソールに仕様を表示する手順は、次のとおりです。
エディターで仕様ファイルをクリックします。
 (API Console) アイコンをクリックします。
または、コマンドパレットでコマンド MuleSoft: API Console を入力することができます。
API Console にエンドポイントが表示されるまで待機します。
API Console に仕様のエンドポイントが表示されます。次に例を示します。
| 1 | メソッドをクリックして詳細を表示します。 | 
| 2 | コンソールメニューを表示します。 | 
コンソールでメソッドをクリックするか、メニューから項目を選択して、仕様のさまざまな部分を表示します。 たとえば、[GET] をクリックすると、次のように表示されます。
API Console でモッキングサービスを使用して、API 仕様で設定した要求と応答を確認します。
Anypoint Code Builder で API プロジェクトの仕様 (oas-example など) を開きます。
 (API Console) アイコンをクリックして、コンソールに仕様を表示します。
API Console で GET や POST などのメソッドをクリックします。
[Try It (試す)] をクリックします。
定義したパラメーターが正しいことを確認して、[Send (送信)] をクリックします。
定義した応答が API Console に返されることを検証します。次に例を示します。
必要に応じて、モックされた API エンドポイントを照会するときに、設定済みの応答例を確認します。
OAS 3.0 (YAML) プロジェクトを作成したら、初期仕様を次のコード例で置き換えることができます。
  openapi: "3.0.0"
  info:
    version: 1.0.0
    title: oas-example
  paths:
    /contacts:
      get:
        summary: Retrieve a list of contacts
        description: Returns a list of contacts.
        responses:
          '200':
            description: Successful response
            content:
              application/json:
                example:
                  - id: 1
                    firstName: John
                    lastName: Doe
                    company: Example Corp
                  - id: 2
                    firstName: Jane
                    lastName: Smith
                    company: Another Company
      post:
        summary: Create a new contact
        description: Creates a new contact.
        requestBody:
          description: Contact object to be created
          required: true
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Contact'
        responses:
          '201':
            description: Contact created successfully
            content:
              application/json:
                example:
                  id: 3
                  firstName: John
                  lastName: Doe
                  company: Example Corp
          '400':
            description: Invalid request
          '500':
            description: Internal server error
    '/contacts/{contactId}':
      put:
        summary: Update a contact
        description: Updates an existing contact based on the contact ID.
        parameters:
          - name: contactId
            in: path
            description: ID of the contact to update
            required: true
            schema:
              type: integer
              format: int64
        requestBody:
          description: Updated contact object
          required: true
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Contact'
        responses:
          '200':
            description: Contact updated successfully
            content:
              application/json:
                example:
                  id: 3
                  firstName: John
                  lastName: Doe
                  company: Updated Corp
          '400':
            description: Invalid request
          '404':
            description: Contact not found
          '500':
            description: Internal server error
  components:
    schemas:
      Contact:
        type: object
        properties:
          id:
            type: integer
            format: int64
          firstName:
            type: string
          lastName:
            type: string
          company:
            type: string
        required:
          - firstName
          - lastName