APIのスタブ、モックサーバライブラリまとめ

API開発する際にモックアップサーバがあったり、テストを行う際にスタブのライブラリがあると便利です。スタブはプログラミング言語に依存しますが、モックサーバであればJSONスキーマなどを使って立ち上げられます。今回はそうしたスタブ、モックサーバを紹介します。

heroku/dorante: stub an API from a JSON schema

JSON SchemaをベースにAPIサーバのスタブを作成します。単純にJSON Schemaを適用するだけでも利用できますし、細かくコーディング(レスポンス内容をカスタマイズするなど)もできます。

heroku/dorante: stub an API from a JSON schema

putan/stubon: stubon is simple dummy api server.

専用のJSON/YAMLフォーマットに沿って記述してスタブサーバを立ち上げます。

'/aaa/get':
    -
        request:
            method: 'GET'
        response:
            status: 200
            body:
                result: 'OK!'

SSLにも対応しているのが特徴です。

putan/stubon: stubon is simple dummy api server.

byoutline/MockServer: Simple REST server that makes simulating API easy.

Javaで作られています。JSONファイルでパス、メソッド、クエリを定義し、そのレスポンスを記述してモックサーバのベースを作ります。

byoutline/MockServer: Simple REST server that makes simulating API easy.

change/facebook-stub: Dropin Facebook Javascript API Stub for testing

FacebookのJavaScript API向けのスタブです。ネットワーク接続を伴わず、Facebookにアクセスすることもないので、利用者のソーシャル状況などに左右されないテストができます。

change/facebook-stub: Dropin Facebook Javascript API Stub for testing

kosamari/api-stub: Simple, no dependency, temporary API for your prototype

JSONフォーマットで記述した内容を元にスタブサーバを立ち上げます。機能は豊富ではありませんが、その分簡単に立ち上げられるのが便利です。

kosamari/api-stub: Simple, no dependency, temporary API for your prototype

markvincze/Stubbery: Library for creating Api stubs in .NET. https://markvincze.github.io/Stubbery/

.NET用のスタブライブラリです。テストコード中にあらかじめ書いておくことで、ユニットテストで利用できます。

markvincze/Stubbery: Library for creating Api stubs in .NET. https://markvincze.github.io/Stubbery/

knuton/stubb: Specify REST API stubs using your file system.

フォルダとファイルを使って実際にJSONファイルなどを配置し、その内容を読み取ります。例えば whales/GET.1.json といったファイルを用意します。コードと分離して管理できるのでメンテナンスしやすそうです。

knuton/stubb: Specify REST API stubs using your file system.

endeepak/stub_on_web: Create stub urls to test external API integration

Elixirで作られたスタブサーバです。Elixirで書かれた設定ファイルをベースとして、サーバが立ち上がります。

endeepak/stub_on_web: Create stub urls to test external API integration


スタブとモックサーバは提供される機能が異なりますが、どちらもテスト時において役立つことでしょう。特にその言語のテスト環境において良いスタブライブラリがない場合にはモックサーバを使ってテストするのが良さそうです。

© NTT Communications Corporation 2014