MCK9595.APIMocker 0.2.0

dotnet tool install --global MCK9595.APIMocker --version 0.2.0
                    
This package contains a .NET tool you can call from the shell/command line.
dotnet new tool-manifest
                    
if you are setting up this repo
dotnet tool install --local MCK9595.APIMocker --version 0.2.0
                    
This package contains a .NET tool you can call from the shell/command line.
#tool dotnet:?package=MCK9595.APIMocker&version=0.2.0
                    
nuke :add-package MCK9595.APIMocker --version 0.2.0
                    

MCK9595.APIMocker

OpenAPI定義ファイルから自動でモックAPIサーバーを生成するCLIツールです。

特徴

  • OpenAPI 3.0 (YAML/JSON) から自動でモックサーバーを生成
  • 日本語対応のリアルなダミーデータ生成
  • フル CRUD サポート (GET/POST/PUT/PATCH/DELETE)
  • リクエストバリデーション
  • クエリパラメータ(ソート、フィルタ、ページネーション)
  • シミュレーション機能(遅延、エラー)

インストール

dotnet tool install -g MCK9595.APIMocker

使い方

基本的な使い方

mck-api-mocker serve api.yaml

CLIオプション

mck-api-mocker serve api.yaml [options]

Options:
  -p, --port <port>        ポート番号 (default: 5000)
  --host <host>            ホストアドレス (default: localhost)
  --cors                   CORSを有効化 (default: true)
  -v, --verbose            詳細なリクエスト/レスポンスログを出力
  --delay <ms>             固定遅延をミリ秒で指定
  --delay-min <ms>         ランダム遅延の最小値
  --delay-max <ms>         ランダム遅延の最大値
  --error-rate <0.0-1.0>   エラー発生確率
  --error-codes <codes>    返すエラーコード (カンマ区切り)

例

# 基本的な起動
mck-api-mocker serve api.yaml

# ポート3000で起動
mck-api-mocker serve api.yaml -p 3000

# 詳細ログ付きで起動
mck-api-mocker serve api.yaml -v

# 500msの固定遅延
mck-api-mocker serve api.yaml --delay 500

# 100-500msのランダム遅延
mck-api-mocker serve api.yaml --delay-min 100 --delay-max 500

# 10%の確率でエラーを返す
mck-api-mocker serve api.yaml --error-rate 0.1

# 10%の確率で500/502/503のいずれかを返す
mck-api-mocker serve api.yaml --error-rate 0.1 --error-codes 500,502,503

OpenAPI定義の検証

mck-api-mocker validate api.yaml

クエリパラメータ

ページネーション

# 最初の10件を取得
GET /users?_take=10

# 10件目から5件取得
GET /users?_skip=10&_take=5

レスポンス:

{
  "items": [...],
  "total": 100,
  "hasMore": true
}

ソート

# 名前で昇順ソート
GET /users?_sort=name

# 名前で降順ソート
GET /users?_sort=name&_order=desc

フィルタリング

# statusがactiveのユーザーを取得
GET /users?status=active

# 複数条件
GET /users?status=active&role=admin

カスタムステータスコード

# 500エラーを返す
GET /users?_status=500

# リクエスト単位での遅延
GET /users?_delay=1000

バリデーション

以下のバリデーションを自動で行います:

  • required: 必須フィールドのチェック
  • type: 型チェック (string, integer, number, boolean, array, object)
  • format: フォーマットチェック (email, uuid, date, date-time, uri)
  • minLength/maxLength: 文字列長チェック
  • minimum/maximum: 数値範囲チェック
  • enum: 列挙値チェック

バリデーションエラー時のレスポンス:

{
  "error": "Validation failed",
  "details": [
    { "field": "email", "message": "Field 'email' must be a valid email" }
  ]
}

ダミーデータ生成

フィールド名やフォーマットから適切なダミーデータを自動生成します:

フィールド/フォーマット 生成例
name 田中太郎
email / format: email tanaka@example.com
phone / phoneNumber 090-1234-5678
address 東京都渋谷区...
format: uuid 550e8400-e29b-41d4-...
format: date-time 2025-11-30T10:00:00Z
enum 定義された値からランダム選択

開発

ビルド

dotnet build

テスト

dotnet test

ローカル実行

dotnet run --project src/MCK9595.APIMocker.Cli -- serve sample-user-api.yaml

ライセンス

MIT

Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

This package has no dependencies.

Version Downloads Last Updated
0.2.0 400 11/30/2025
0.1.0 291 11/30/2025