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 DesignerとFlow Designerの2つの主要コンポーネントで構成されており、この2つのツールを使うことでAPI仕様の定義を行うことが可能になります。
この最初の章では、Design Centerで作成できる中身・モノをご紹介していきます。
1.API Specification(API仕様)
API Specificationは、APIの構造と動作を定義する文書。これはAPIのエンドポイント、リクエストパラメータ、レスポンスフォーマット、エラーハンドリングなどを記述するもの。
- 利用するツール
- API Designerを利用。RAML(RESTful API Modeling Language)やOAS(OpenAPI Specification)という標準的なフォーマットで記述します。
- 機能概要
- エンドポイント定義: 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を使用してデータのマッピングや変換を行います。
- 条件分岐: データや条件に応じてフローを分岐させるロジックを設定。
- QDesign CenterとAnypoint Studioの役割分担は?
- A
Design CenterはAPI仕様書の作成とシンプルなフローの設計に適しています。設計段階でのモックアップやプロトタイピングに最適。Anypoint Studioは、複雑な統合フローの詳細な実装と本番環境へのデプロイを行うためのツールです。エンタープライズレベルの統合を実現。
3.モックサーバー
モックサーバーは、実際のバックエンドがなくてもAPIの動作をシミュレートするためのものです。API仕様に基づいて自動的に生成されます。(関連 モックとは?)
- 利用するツール
- API Designerから生成。設計したAPI仕様に基づいて、リアルタイムでモックサーバーを立ち上げ、APIの動作を確認することが可能。
- 機能概要
- リクエストシミュレーション: クライアント側からのリクエストをシミュレートし、定義されたレスポンスを返します。
- エラーレスポンス: エラーレスポンスのテストも可能です。
- 即時フィードバック: モックサーバーを使用して、設計中にAPIの動作を確認し、必要な修正をリアルタイムで行います。
補足:Design Centerでの作業と流れ
- QDesignCenterでは(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がエンタープライズ環境で動作し、クライアントからのリクエストに応答します。
まとめると以下のような流れです。
- Design CenterでAPIの「型」を定義(API仕様書の作成)。
- Anypoint Studioでその「型」に基づいてAPIの実装を行う。
- Anypoint Platform上で実装されたAPIをデプロイし、運用・管理する。