本文へ移動
Develop Tools
← 使い方ガイドへ戻る

Backend未完成でもFrontendを開発する方法|モックAPIレスポンスを作成

FrontendがBackend完成を待つと、結合時にUIの不足やResponse構造の食い違いがまとめて見つかります。先に契約とScenarioを合意し、同じ形のMock Dataで開発を進めます。

未完成Backendの代わりにAPI仕様とモックデータを使ってFrontendを先行開発する流れ
未完成Backendの代わりにAPI仕様とモックデータを使ってFrontendを先行開発する流れ

APIレスポンス用のダミーJSONを生成する

機密情報を含まないJSONサンプルから、項目規則・件数・Seed・出力形式を指定してBrowser内でモックデータを生成できます。

結論:API仕様をSource of TruthにしてMock Responseを作る

PathやStatusを独自に決めるのではなく、API仕様からResponse Bodyの型を抜き出し、通常・空・ErrorのFixtureを作ります。FrontendはMockと実APIを同じInterface越しに扱い、切替箇所を限定します。

Frontendだけで独自Mockを育てると、Backend完成時に型・null・Pagination形式が合わなくなります。契約変更をMockへ同期してください。

Backend完成前の分担

成果物担当確認
API契約Frontend・Backend共同型、必須、Status
Mock JSONFrontendで利用契約と一致
Request InterceptMSW等Path、Method、Status
実APIBackend同じContract Testを通す

Frontendを先行実装する手順

  • 1. Endpointごとの成功・空・Error Responseを合意します。
  • 2. 個人情報を含まない1件のJSON例を作ります。
  • 3. 必要件数を生成しFixtureとして保存します。
  • 4. Data取得層をMockへ差し替えてUIを実装します。
  • 5. Backend完成後にContract Testを通し実APIへ切り替えます。

先行確認するUI状態

確認対象用意するケース確認内容
Loading遅延はMSW側で設定Skeleton・二重送信
Success通常Response基本表示
Empty空配列・0件Empty State
ErrorError BodyとStatus再試行・案内

DevelopToolsは遅延やHTTP Statusを設定しません。生成したBodyと、MSW等のNetwork Mock設定を分けて管理します。

実APIへの切替を簡単にする

UI Componentへ直接FixtureをImportし続けず、RepositoryやFetcherの境界でMockを差し替えます。型定義、OpenAPI、JSON Schemaのいずれかを契約として共有すると差分を検出しやすくなります。

APIモックデータ生成ツールでできること・できないこと

項目現在の対応補足
入力JSONの貼り付け・.jsonファイル・5種類のプリセットOpenAPI/JSON Schemaの直接入力は未対応
出力単体・配列・固定形式のページネーションJSONHTTP EndpointやMock Serverは起動しない
件数1~10,000件配列要素数は0~100。出力Byte数の上限はない
連番、UUID、氏名、Email、URL、IP、数値、Boolean、日付・日時、enum、null等項目名とサンプル値による推定はHeuristic
再現性文字列Seedと同じ設定による再生成Generator実装を変更すると将来の値が変わる可能性がある
Locale日本語・英語内蔵辞書を使用し、Faker Libraryは読み込まない
Edge Casenull確率、空配列、固定値、数値範囲Optional項目の出現確率や専用Boundary Scenarioは未対応
保存Copy・UTF-8 JSON Download入力と生成結果をServerへ送信しない

生成するのはAPI Responseへ利用できるJSONデータです。RequestをInterceptするMSW Handler、HTTP Status、Header、遅延、Endpoint自体は別の開発環境で設定します。

一次資料と実装を照合する

Faker、MSW、Storybook、OpenAPI、JSON Schemaの仕様は更新されます。記事の例をそのまま固定せず、利用中のVersionと公式資料を確認してください。DevelopToolsの生成器はFakerやMSWを内蔵せず、Browser内の独自Seed乱数と内蔵辞書でJSONを生成します。

具体例:商品一覧をBackendより先に作る

Productのid、name、price、stockを合意し、通常20件と空配列を用意します。

Error Bodyは別Fixtureにし、HTTP 500の設定はMSW Handler側へ書きます。

  1. Response型を合意する
  2. 通常・空・Errorを生成する
  3. MSW等へ組み込む
  4. 実APIで同じUI Testを再実行する

Mockだけに存在するPropertyをUIで使わないよう、結合前にResponse差分を確認します。

よくある質問

Mock Serverも必要ですか?
単純なComponentへDataを渡すだけならFixtureで十分です。実際のfetch処理も試す場合はMSW等を組み合わせます。
Mockを本番へ残してよいですか?
Development/Test限定にし、本番Bundleや切替条件へ混入しないよう構成を分けてください。