PR

MuleSoft:Design Centerを利用したAPI仕様書の作成を3分で

MuleSoft

Design Centerは一言で説明すると、「API仕様書を作成し、設計段階でのモック、テストを行うためのツール」です。実際のAPIの実装は含まず、主にAPIの設計と初期テストにフォーカスしています。APIの実装や本番環境へのデプロイは、別のツール(例えば、Anypoint StudioやAnypoint Platform)を使用して行います。

参考 APIとは?

このページではDesign Centerを利用してAPI仕様を定義する方法を説明します。API仕様の定義はMuleSoft開発の第1歩で、ここで説明する内容を理解すると徐々にMuleSoftの全貌が見えてくるはずです。

スポンサーリンク

Design Centerでできること

ザックリいえば、APIの「型」や「外観(見た目)」を定義するためのツールです。具体的にいうと、APIのエンドポイントやメソッド、リクエストとレスポンスの構造を定義し、設計段階での動作をシミュレーションする役割を果たします。

MuleSoft Design Centerは、APIの設計、簡易テスト、管理を行うためのクラウドベースのプラットフォームです。これらの機能はAnypoint Platformの一部として提供されており、各コンポーネントがどのように連携しているかを理解することが重要です。

ポイント Anypoint Platformの全体像

Anypoint Platformは、API管理、デザイン、開発、統合、運用を包括的にサポートするプラットフォームです。主要なコンポーネントには、Design Center、Anypoint Studio、API Manager、Runtime Managerなどがあります。

ポイント Design Centerの動作原理

Design Centerは、主にAPI DesignerFlow Designerの2つの主要コンポーネントで構成されており、この2つのツールを使うことでAPI仕様の定義を行うことが可能になります。

この最初の章では、Design Centerで作成できる中身・モノをご紹介していきます。

1.API Specification(API仕様)

API Specificationは、APIの構造と動作を定義する文書。これはAPIのエンドポイント、リクエストパラメータ、レスポンスフォーマット、エラーハンドリングなどを記述するもの。

  • 利用するツール
  • 機能概要
    • エンドポイント定義: APIのエンドポイント(URIパス)を定義。
    • HTTPメソッド: 各エンドポイントで使用するHTTPメソッド(GET、POST、PUT、DELETEなど)を指定。
    • パラメータ: リクエストパラメータ(クエリパラメータ、ヘッダー、ボディなど)を定義。
    • レスポンス: 各エンドポイントのレスポンスフォーマットとステータスコードを記述。
    • エラーハンドリング: エラーレスポンスの定義。

サンプル RAMLを利用したAPI仕様の例

#%RAML 1.0
title: ToDo API
version: v1
baseUri: http://api.todoapp.com/{version}
mediaType: application/json

/types:
  ToDoItem:
    type: object
    properties:
      id: integer
      title: string
      completed: boolean
    example:
      id: 1
      title: Buy groceries
      completed: false

/todos:
  get:
    description: Retrieve a list of ToDo items
    responses:
      200:
        body:
          type: array
          items: ToDoItem
          example: |
            [
              {
                "id": 1,
                "title": "Buy groceries",
                "completed": false
              },
              {
                "id": 2,
                "title": "Clean the house",
                "completed": true
              }
            ]
  post:
    description: Create a new ToDo item
    body:
      type: ToDoItem
    responses:
      201:
        body:
          type: ToDoItem
          example: |
            {
              "id": 3,
              "title": "Walk the dog",
              "completed": false
            }
  /{id}:
    get:
      description: Retrieve a specific ToDo item by ID
      responses:
        200:
          body:
            type: ToDoItem
            example: |
              {
                "id": 1,
                "title": "Buy groceries",
                "completed": false
              }
        404:
          description: ToDo item not found
    put:
      description: Update a specific ToDo item by ID
      body:
        type: ToDoItem
      responses:
        200:
          body:
            type: ToDoItem
            example: |
              {
                "id": 1,
                "title": "Buy groceries",
                "completed": true
              }
        404:
          description: ToDo item not found
    delete:
      description: Delete a specific ToDo item by ID
      responses:
        204:
          description: ToDo item successfully deleted
        404:
          description: ToDo item not found

RAMLが読めなくても大体何をしているかは理解できるかと思います。→APIの見た目(リクエストの型・レスポンスの型を定義しています。)

この型をもとに、後続のステップで実際にAPIの実装(データ連携などのビジネスロジック)をしていく流れになります。API Specificationは「APIを利用する人向け」に「どんなAPIなのか?」を説明するためのものでもあると考えることができます。

2.Flow(フロー)

Flowは異なるシステムやサービス間のデータフローやプロセスを定義するもの。Flow Designerを使用して、ドラッグアンドドロップで簡単に設計することができます。ただし、Flow Designerは複雑なロジックを実装することは難しく、実際にはAnypoint Studioを利用することが一般的です。

  • 利用するツール
    • Flow Designerを使用。視覚的なインターフェースを提供し、ローコードで統合フローを設計します。
  • 機能概要
    • コネクタ: 各種システムやサービス(Salesforce、Database、HTTPなど)との接続を設定。
    • プロセス定義: データの流れや処理手順を定義。
    • トリガー: フローを開始するトリガーイベント(タイマー、HTTPリクエストなど)を設定。
    • データ変換: DataWeaveを使用してデータのマッピングや変換を行います。
    • 条件分岐: データや条件に応じてフローを分岐させるロジックを設定。
Q
Design CenterとAnypoint Studioの役割分担は?
A

Design CenterはAPI仕様書の作成とシンプルなフローの設計に適しています。設計段階でのモックアップやプロトタイピングに最適。Anypoint Studioは、複雑な統合フローの詳細な実装と本番環境へのデプロイを行うためのツールです。エンタープライズレベルの統合を実現。

3.モックサーバー

モックサーバーは、実際のバックエンドがなくてもAPIの動作をシミュレートするためのものです。API仕様に基づいて自動的に生成されます。(関連 モックとは?

  • 利用するツール
    • API Designerから生成。設計したAPI仕様に基づいて、リアルタイムでモックサーバーを立ち上げ、APIの動作を確認することが可能。
  • 機能概要
    • リクエストシミュレーション: クライアント側からのリクエストをシミュレートし、定義されたレスポンスを返します。
    • エラーレスポンス: エラーレスポンスのテストも可能です。
    • 即時フィードバック: モックサーバーを使用して、設計中にAPIの動作を確認し、必要な修正をリアルタイムで行います。

まとめ Design Centerでできること

MuleSoft Design Centerは、Anypoint Platformの一部として、APIの設計、モック、テストを行うための強力なツール。

API Designerを使用してRAML/OAS仕様を作成し、Anypoint Platformがこれを読み込んでモックサーバーやAPIポータルを生成。Flow Designerでは、シンプルな統合フローを設計しリアルタイムでデバッグが可能になるため、開発プロセスの効率化、品質の高いAPIや統合フローの提供に寄与する。

補足:Design Centerでの作業と流れ

Q
DesignCenterでは(Flow Designerを利用しない場合)、あくまでもそこに実装は存在せず「型」だけが定義されている。この「型」をAnypoint Studioに取り込み、APIの実装として1つの資源に固めたものが、Anypoint Platform上で動作している、といことになるのでしょうか。
A

認識通り。MuleSoft Design Centerでの作業は主にAPIの「型」(すなわち仕様書)の作成に集中しており、実際の実装は含まれていません。以下にその流れを詳しく説明します

1. API Specificationの作成(Design Center)

  • API Designerを使用して、APIのエンドポイント、HTTPメソッド、リクエスト/レスポンスの構造などをRAMLまたはOASで定義します。
  • この段階では、APIの「型」としての仕様書が作成されるのみ。

2. APIの実装(Anypoint Studio)

  • Design Centerで作成したRAML/OAS仕様書をAnypoint Studioにインポートします。
  • Anypoint Studioで、APIの実際のビジネスロジック、データ処理、バックエンドサービスとの連携などを実装します。
  • 具体的には、Muleフローを構築し、必要なコネクタやトランスフォーマーを設定します。

3. デプロイと実行(Anypoint Platform)

  • Anypoint Studioで完成したAPI実装をAnypoint Platformにデプロイします。
  • デプロイされたAPIは、Anypoint Runtime Managerを通じて管理、監視、スケーリングされます。
  • これにより、実際のAPIがエンタープライズ環境で動作し、クライアントからのリクエストに応答します。

まとめると以下のような流れです。

  1. Design CenterでAPIの「型」を定義(API仕様書の作成)。
  2. Anypoint Studioでその「型」に基づいてAPIの実装を行う。
  3. Anypoint Platform上で実装されたAPIをデプロイし、運用・管理する。

このWebサイトは現役のエンジニアが以下3点を目的として運営しています。

  1. 勉強:一度理解した内容を忘れないように。
    → アウトプットは「最強のインプット」である! 
  2. 備忘:忘れたとしても後から見返せるように。
    → 未来の自分への「お手紙」を書いています。 
  3. 共有:〇〇ってこうだったんだ!の感動をシェアできるように。
    → あなたの知識は誰かにとっての「価値ある情報」です。 

副業ブログの始め方はこちらから

スポンサーリンク
MuleSoft
シェアする
ビズドットオンラインをフォローする
タイトルとURLをコピーしました