モバイルアプリやWebアプリケーションを開発する際に、外部サービスとの連携は欠かせないものになっています。自社でWebサーバーも開発する場合、モバイルアプリ開発とのスケジュールの兼ね合いで、APIの仕様が確定していないことも多々あります。また、外部サービスを利用する場合でも、開発環境で利用できるAPIが提供されていない場合もあります。

そうしたときに利用できるのがAPIモックツールです。APIモックツールはAPIの仕様を定義することで、実際のAPIがなくとも、APIリクエストとレスポンスを代替してくれます。APIが用意できるまでの間、APIモックツールを利用することで、開発を進められます。

この記事では、各種APIツールをまとめて紹介します。

クラウド型API

クラウド型の利点は、すぐに使い始められることです。また、チームで設定を共有できるので、最新情報の反映を忘れて仕様が古いまま進めてしまうようなミスも防げます。

ただし、ネットワーク接続が必須なので、ローカルだけで開発したり、オフラインでの開発には向きません。

Mockaroo

Mockaroo はリアルなテストデータ生成に特化したツールです。様々なフェイクデータを内蔵しており、形式や分布を細かく設定できます。JSON・CSV・SQL・Excelなどあらゆる形式に対応しており、バックエンドのモックデータ作成にも重宝します。

データはCSVアップロードに対応しているなど、開発者以外の方にも使いやすいUIが特徴です。

Beeceptor

Beeceptor はHTTPトラフィックの可視化とカスタムルールによるモックレスポンス制御が特徴のサービスです。APIエンドポイントとしてBeeceptorを設定すれば、すべてのリクエスト・レスポンスを可視化し、条件に応じた擬似レスポンスを返せます。Webhookを使った開発に便利です。

データはJSONフォーマットで指定して、モックサーバ化できます。他にもローカルサーバをインターネット上に公開するなど、API開発に便利な機能が揃っています。

MockFly

MockFly は、モダンなUIと高速レスポンスを兼ね備えた新興のモックAPIプラットフォームです。OpenAPI仕様の自動生成、動的なレスポンス制御、ランダムデータ生成、AIによるJSON自動生成など、実運用を想定した機能を備えています。

すべてのリクエストをログしてくれるので、開発時のリクエストを確認するのに便利です。Chrome機能拡張に寄るエンドポイント作成の手軽さも魅力です。

Mocki

Mocki はYAML、またはWeb UIでAPI仕様を定義し、即座にモックAPIエンドポイントを生成できるサービスです。レスポンスの遅延やエラーコードのシミュレーション、認証ヘッダーの設定など、実際のAPIに近い挙動を再現できます。

フロントエンドはもちろん、バックエンドの開発も想定されています。テストデータやエラーシミュレーション、GitHubとの統合、Mocki CLIなど、開発を支援する機能が充実しています。

mockAPI

mockAPI はビジュアル的なデータ設計が特徴的です。そうやって定義したモデルに対して、各モデル間のリレーションも設定できます。データのCRUD操作をサポートしており、RESTful APIとして利用可能です。

カスタムデータの生成やページネーションサポート、フィルタリングなどの機能があります。Webhookは今後の予定となっており、基本的にRESTful APIのモックに特化しています。

MockFast.io

MockFast.io はOpenAPI Specification(OAS)に基づくモックAPIを即座に生成できるサービスです。YAMLまたはJSONのOASファイルをアップロードするだけで、モックAPIエンドポイントが生成されます。

価格表を削除し、永年無料を掲げています。

Mock-API.net

Mock-API.net は、無料でシンプルなモックエンドポイントをすぐに作成できるサービスです。5つのAPIまでは無料で利用できます。

フォームを利用したAPI作成、利用状況などのダッシュボードがあります。多機能ではありませんが、ごく小さなモックアップを手早く作成するのに便利です。

AMock

AMock は無料で利用できるAPIモックサービスです。認証なしでAPIを作成できますが、その場合は24時間で削除されます。アカウント登録すれば、無期限に保存できます。

エンドポイント、HTTPメソッド、レスポンスコード、レスポンスボディを指定してAPIを作成します。ドメインは amock.io 固定になります。

ローカル実行型

ローカル実行型の利点は、ネットワーク接続が不要なことです。オフラインでの開発や、セキュリティ上の理由で外部サービスを利用できない場合に便利です。

WireMock

WireMockはオープンソース・ソフトウェアなので、コア部分を利用する限りは無料、かつローカルで利用できます。クラウド版ではチームコラボレーション、OpenAPIサポートなどの機能があります。

クラウド版ではgRPCサポートも行われているようです。ファイル送信にも対応しているのが特徴です。

WireMock

Mockoon

MockoonもWireMockと同様にオープンソース・ソフトウェアで、ローカルで利用できます。GUIベースの設定が特徴で、直感的にモックAPIを作成できます。また、クラウド版も提供されています。

ダイナミックテンプレート、ルールベースのレスポンス、Webhookサポート、既存API向けの操作記録とリプレイ機能があります。

Mockoon

mockbin.io

MockbinはとてもシンプルなUIで、HTTPメソッドやリクエストを定義するだけで、すぐにモックAPIを作成できます。Mockbin自体はオープンソース・ソフトウェアなので、社内で立てて利用することもできます。

mockbin.io

Hoverfly

Hoverflyは、Hoverfly Cloudというサービスの中で提供されているAPIシミュレーション機能です。オープンソースとして、Hoverflyが利用できます。CLIで提供されており、JavaとPython向けにネイティブバインディングがあります。

UIはなく、JSONファイルで設定を定義します。APIのキャプチャとリプレイ、シナリオベースのレスポンス、レスポンスの遅延やエラーシミュレーションなどの機能があります。

Hoverfly

Microcks.io

MicrocksはOpenAPIやAsyncAPI、gRPC、GraphQLを含む複数のAPI標準をサポートしています。契約テストという概念を導入しており、APIのモックだけでなく、契約に基づくテスト(正しいレスポンスが返ってくるかの検証)も可能です。

MicrocksはKubernetes上で動作するように設計されており、スケーラブルなAPIモック環境を構築できます。CI/CDパイプラインとの統合もサポートしているので、より高度なAPIテスト環境を構築できます。

Microcks.io

stub-service - npm

StubServiceはシンプルなNode.jsベースのモックサーバです。設定ファイルに基づいてAPIエンドポイントを定義し、モックレスポンスを返します。軽量でセットアップが簡単なのが特徴です。

特にユニットテストのような小規模なモックAPIが必要な場合に便利です。

stub-service - npm

フロントエンド開発向け

以下は、特にフロントエンド開発に便利なツールです。フロントエンド開発では、APIのモックだけでなく、ネットワークレベルでの操作や、UIに近い形でのモックが求められることがあります。

Mock Service Worker (MSW)

Mock Service Workerは、その名の通りService Workerを利用して、ブラウザでAPIリクエストをインターセプトし、モックレスポンスを返します。つまり、サーバーを立てる必要がなく、フロントエンドのコードに近い形でモックAPIを実現できます。

REST APIとGraphQLの両方をサポートしています。

Mock Service Worker (MSW)

Mirage JS

Mirage JSは、フロントエンドアプリケーションのためのAPIモックライブラリです。JavaScriptで書かれており、React、Vue、Angularなどのフレームワークと簡単に統合できます。

インメモリデータベースがあり、CRUD操作をサポートしています。APIのエンドポイント、レスポンス、データモデルをコードで定義できるので、フロントエンド開発に非常に便利です。

Mirage JS

開発支援・APIデバッグ補助

ここで紹介するのはモックサーバーのみならず、API設計やドキュメント作成もサポートするツールです。APIの設計からモックまで一貫して行いたい場合に便利です。

Postman

Postmanは、API開発のための包括的なツールセットを提供しています。APIリクエストの作成、テスト、ドキュメント化、モックサーバーの生成など、多くの機能があります。

デスクトップアプリとWebアプリの両方があり、チームでのコラボレーションもサポートしています。APIのモックサーバーは、Postmanコレクションに基づいて生成されます。

Postman

Requestly

RequestlyはPostmanを強く意識したサービスのようです。1クリックでPostmanから移行するツールまで用意されています。APIモックの他、テストやデバッグ、リクエストのリダイレクト、ヘッダーの追加・変更など、様々な機能があります。

ローカル、クラウドの両方で利用できます。REST APIとGraphQLをサポートしています。

Requestly

Stoplight

Stoplightでは、Web UIでAPI設計を行い、そのままモックサーバーとして利用できます。OpenAPIなどのフォーマットをサポートしており、APIドキュメントの生成も可能です。

この他、APIのテストやデバッグ、チームコラボレーションなど、API開発に必要な機能を様々に提供しています。

Stoplight

まとめ

クラウド型のサービスを使えば、すぐにでもAPIモックを使った開発を始められます。個人開発であれば、オープンソースなどのローカルで使えるものでもいいでしょう。また、テストに特化したものと、実際のアプリ動作に近い形でモックできるものと、目的に応じて使い分ける必要があります。

APIモックツールを活用して、効率的に開発を進めてください。