Skip to content

ローカル開発

このページでは swallowkit dev コマンド、ローカルシードデータ管理、バックエンド別のセットアップを説明します。

開発サーバーの起動

bash
npx swallowkit dev
bash
pnpm swallowkit dev

2 つのサーバーが起動します:

オプション

フラグ説明
-p, --port <port>Next.js サーバーポート
-f, --functions-port <port>Azure Functions ポート
--host <host>サーバーホスト名
--seed-env <name>起動前にシードデータを適用
-o, --openブラウザを自動で開く
-v, --verbose詳細ログ出力
--no-functionsAzure Functions の起動をスキップ
--mock-connectorsモックコネクタサーバーを使用

バックエンド別の動作

TypeScript

追加セットアップ不要。func start ですぐに起動します。

Python

swallowkit dev はローカルの Python 環境管理に uv を使います:

  • .uv/bin にプロジェクトローカルの uv バイナリを導入または再利用
  • .uv/python に uv 管理の Python を保持
  • functions/.venv を Functions アプリ用に作成
  • functions/.codegen-venv をスキーマ生成用に作成(scaffold が使用)

Python のインストールや virtualenv の手動作成は不要です。

C#

Azure Functions isolated worker(.NET 10)はホスト応答前にビルドが必要です。swallowkit dev は Functions ホストが応答可能になるまで最大 90 秒待機してから URL を表示します。

.NET 10 SDK と Azure Functions Core Tools 4.6.0 以上が必要です。

Dev seeds

Dev seeds を使うと、サーバー起動前にローカルの Cosmos DB Emulator に既知のデータを投入できます。

シードテンプレートの作成

bash
npx swallowkit create-dev-seeds local
bash
pnpm swallowkit create-dev-seeds local

dev-seeds/local/ にモデルごとの JSON ファイルが生成されます:

dev-seeds/
  local/
    todo.json
    category.json

各ファイルは shared/models/ のスキーマに対応します。テストデータを記述します:

json
[
  {
    "id": "seed-todo-001",
    "text": "最初の todo",
    "completed": false,
    "createdAt": "2026-01-01T00:00:00.000Z",
    "updatedAt": "2026-01-01T00:00:00.000Z"
  }
]

各ドキュメントには id フィールドが必須です。

現在の Emulator データをエクスポート

bash
npx swallowkit create-dev-seeds local --from-emulator --force
bash
pnpm swallowkit create-dev-seeds local --from-emulator --force

現在の Cosmos DB Emulator のコンテナデータをシードファイルにエクスポートします。_etag などのシステムプロパティは自動的に除去されます。

起動時にシードを適用

bash
npx swallowkit dev --seed-env local
bash
pnpm swallowkit dev --seed-env local

dev-seeds/local/ の JSON ドキュメントで、対応するコンテナのデータを置き換えます。対応するファイルがないコンテナはそのまま残ります。

--seed-env を省略すると、既存の Emulator データは保持されます。

ユースケース

  • デモや障害再現のために既知の状態を再現する
  • 手動テスト中に登録した現実的なデータを保存する
  • 検証前に Emulator を一貫した状態にリセットする
  • リポジトリ経由でチームメンバーとテストデータを共有する

モックコネクタ

外部データコネクタ(MySQL、PostgreSQL、REST API)を使うモデルでは、実際の外部サービスなしでローカル開発できます:

bash
npx swallowkit dev --mock-connectors
bash
pnpm swallowkit dev --mock-connectors

ポート 7072 にモックプロキシサーバーが起動し:

  • コネクタモデルのルートへのリクエストをインターセプト
  • Zod スキーマから生成されたリアルな偽データを返却
  • 標準的な Cosmos DB モデルのリクエストはポート 7071 の実 Functions ランタイムにプロキシ

フロントエンドと BFF レイヤーは、実データかモックデータかに関係なく同一の動作をします。

次のステップ

Released under the MIT License.