JSONPlaceholderで数分!フェイクREST APIの簡単な構築方法

json-serverを使ってJSONファイルを数秒でフルREST APIに変えたり、セットアップ不要でJSONPlaceholderを利用したり、そしてスキーマを意識したモックにいつ移行すべきかを学びましょう。

INEZA Felin-Michel

INEZA Felin-Michel

17 6月 2026

JSONPlaceholderで数分!フェイクREST APIの簡単な構築方法

Apidog エンタープライズ

オンプレミスデプロイ

SSO & RBAC

SOC 2 準拠

Apidog Enterpriseを見る

フロントエンドを構築しているものの、バックエンドがまだ準備できていない状況です。待つことなくコーディングを続けられるよう、動作するGET、POST、PUT、DELETEを備え、現実的なJSONを返すREST APIが今すぐ必要です。

そのために存在するのがjson-serverです。単一のJSONファイルを指定するだけで、数秒で完全なREST APIを提供し、バックエンドコードは一切不要です。その兄弟であるJSONPlaceholderはさらに一歩進んでおり、何もインストールせずに呼び出せるホスト型のフェイクAPIです。このガイドでは、両方の使い方、それらがどこで限界を迎えるか、そしてスキーマを意識したモックへとApidogで移行すべきタイミングについて説明します。

ボタン

エンドポイントの偽装に関する全体像については、「モックAPIとは何か」を参照してください。ここでは、開発者が最初に手を伸ばす2つのツールに焦点を当てます。

json-serverとは?

json-serverは、平易なJSONファイルを実際のREST APIに変えるオープンソースのnpmツールです。リソースを記述したdb.jsonファイルを作成し、1つのコマンドを実行するだけで、そのファイルによってサポートされる標準的なCRUDルートが手に入ります。書き込みリクエストは実際にファイルを変更するため、セッション中にリクエスト間でデータが永続化されます。

データベースを構築したり、サーバーコードを書いたりすることなく、プロトタイプ作成、フロントエンド開発、デモ、テストのための動作するAPIを最速で手に入れる方法です。このプロジェクトはGitHubで公開されており、この用途で広く使用されています。

json-serverのインストールと実行

npmからインストールします:

npm install json-server

プロジェクトにdb.jsonファイルを作成します。トップレベルの配列キーはコレクションルートになり、トップレベルのオブジェクトは単一リソースルートになります:

{
  "posts": [
    { "id": "1", "title": "First post", "views": 100 },
    { "id": "2", "title": "Second post", "views": 250 }
  ],
  "comments": [
    { "id": "1", "text": "Nice work", "postId": "1" }
  ],
  "profile": {
    "name": "apidog"
  }
}

サーバーを起動します:

npx json-server db.json

デフォルトでhttp://localhost:3000で動作します。それだけです。これでライブAPIが手に入りました。

バージョンに関する注意:json-server v1では古い--watchフラグが廃止され、npx json-server db.jsonが現在のコマンドです。古い0.x系を使用している場合、チュートリアルでは依然としてjson-server --watch db.jsonが表示されるでしょう。

無料で利用できるルート

上記のdb.jsonから、json-serverは完全なRESTインターフェースを生成します。

posts配列の場合:

GET    /posts
GET    /posts/:id
POST   /posts
PUT    /posts/:id
PATCH  /posts/:id
DELETE /posts/:id

profileオブジェクトの場合:

GET   /profile
PUT   /profile
PATCH /profile

クエリも組み込まれています。v1の構文では、条件にコロンを使用します:

GET /posts?views:gt=100       # viewsが100より大きい
GET /posts?views:lte=50       # viewsが50以下
GET /posts?_sort=-views       # viewsで降順ソート
GET /posts?_page=1&_per_page=25   # ページネーション
GET /posts?_embed=comments    # 関連するコメントを含める

利用可能な演算子には、lt, lte, gt, gte, eq, ne, in, contains, startsWith, endsWithが含まれます。フラットファイルと1つのコマンドで、これだけのAPIが利用できるのは驚きです。

JSONPlaceholder:セットアップ不要のフェイクAPI

ツールすらインストールしたくない時があります。同じ作者によるJSONPlaceholderは、jsonplaceholder.typicode.comで無料でホストされている偽のREST APIです。コードから直接呼び出します:

curl https://jsonplaceholder.typicode.com/posts/1
{
  "userId": 1,
  "id": 1,
  "title": "sunt aut facere repellat provident",
  "body": "quia et suscipit..."
}

6つの既製の(すぐに使える)リソースが付属しています:

POST、PUT、PATCH、DELETEも受け付けますが、注意点があります。書き込みは偽装されています。APIは変更が実際に行われたかのように現実的なレスポンスを返しますが、何も保存されません。更新すると「新しい」投稿は消えてしまいます。これは、予測可能なデータに対してUIコードを連携させるには問題ありませんが、実際のバックエンドではありません。

json-server 対 JSONPlaceholder

json-server JSONPlaceholder
セットアップ npmパッケージをインストールし、db.jsonを作成 なし、URLを呼び出すだけ
動作場所 ローカル、あなたのマシン ホスト、公開
カスタムデータ はい、独自のリソース いいえ、固定リソース
書き込みの永続化 はい、db.jsonに保存 いいえ、偽装
最適な用途 独自の形式でのプロトタイプ作成 クイックデモと学習

今すぐにデータが必要で、その内容にこだわらない場合はJSONPlaceholderを使いましょう。独自のリソースと永続的な書き込みが必要な場合はjson-serverを使いましょう。

これらのツールが限界を迎える場所

json-serverとJSONPlaceholderは、1つのこと、つまりJSONを高速に提供することに優れています。しかし、プロジェクトが単独のプロトタイプを超えて成長すると、問題が発生し始めます。

フラットファイルでは物足りなくなった場合、「RESTエンドポイントをモックするためのツールのまとめ」と「無料および安価なAPIモックサーバー」で次の段階をカバーしており、「オンラインAPIモックツール比較」ではホストされたオプションを並べて比較しています。

実際のモックサーバーに移行するタイミング

スキーマを意識したモックは、上記のすべての制限を解決します。ここでApidogがjson-serverから引き継ぎます。

Apidogで同じAPIをモックする

  1. Apidogをダウンロードして、プロジェクトを作成または開きます。
  2. 例えばGET /postsのようなエンドポイントを追加し、そのレスポンススキーマを定義します(または既存のOpenAPIファイルをインポートします)。
  3. ApidogはモックURLを生成し、すぐに各フィールドに対してスマートで現実的なデータを返し始めます。
  4. 特定の値が必要ですか?各フィールドにモックルールを追加して出力を固定します。
  5. モックURLをチームと共有するか、テストスイートやCIに組み込みます。

json-serverの「数分でAPI」という速度を維持しつつ、バリデーション、動的データ、誰もがアクセスできるURLを手に入れることができます。

よくある質問

json-serverは無料ですか? はい、オープンソースで無料で利用できます。JSONPlaceholderも無料です。

json-serverはデータを永続化しますか? はい。POST、PUT、PATCH、DELETEは`db.json`に書き戻されるため、サーバーが実行されている間、リクエスト間で変更が維持されます。JSONPlaceholderは書き込みを偽装し、何も保存しません。

json-serverを本番環境で使用できますか? いいえ。プロトタイプ作成とテストのために作られています。真のバリデーション、認証、スケーラビリティの機能はありません。

json-serverとApidogのようなモックサーバーの違いは何ですか? json-serverは静的なファイルをAPIとして提供します。ApidogはAPIスキーマからモックし、動的で現実的なデータを返し、共有可能なクラウドURLを公開します。コンテキストについては、「モックAPIとは何か」と「RESTモックツールまとめ」を参照してください。

静的な行ではなく、現実的な偽のデータを取得するにはどうすればよいですか? ジェネレーターを使用します。テストデータジェネレーターは多様で現実的なレコードを作成し、Apidogのモックはスキーマからこれを自動的に行います。

要約

json-serverはJSONファイルを1つのコマンドで動作するREST APIに変え、JSONPlaceholderはセットアップ不要でホストされた偽のAPIを提供します。どちらも迅速な開発を妨げられることなく進めるのに最適です。しかし、スキーマバリデーション、動的データ、永続的な状態、そしてチームが実際にアクセスできるURLが必要になった場合、フラットファイルでは不十分です。それがApidogのモックサーバーが引き継ぐべき境界線です。Apidogをダウンロードし、仕様をインポートすれば、最初のリクエストからモックが実際の契約に一致します。

ApidogでAPIデザイン中心のアプローチを取る

APIの開発と利用をよりシンプルなことにする方法を発見できる