d-bye

CRUD の REST API をスキーマから自動生成する

テーブルの列を定義すると、d-bye は一覧取得・作成・更新・削除の REST API を Rust(actix) または Node.js(Express) で生成します。入力バリデーションや外部キー整合も含みます。API 単体ではなく、フロント(React)と PostgreSQL の DDL まで同じ設計書から横断一貫で生成され、ZIP で全文エクスポートできます。

CRUD API ジェネレーターとは

CRUD API は、あるテーブルに対して「作成(Create)・取得(Read)・更新(Update)・削除(Delete)」を行う REST エンドポイント群です。どのテーブルでも似た形になるため、スキーマから自動生成するのに向いています。

d-bye は「設計書を起点」として、テーブル・列・制約・外部キーを定義すると、そこから CRUD API を生成します。AI は生コードではなく設計書を書き、その後に型検証+コンパイルチェックを通すため、壊れた API コードを出しません。

DB スキーマ(テーブル定義)から始めたい場合は「テーブル定義書のテンプレートと書き方」も参照してください。定義した内容がそのまま API・画面・DDL になります。

生成される API に含まれるもの

テーブルごとに、最低限これらがまとめて生成されます。

GET /(一覧)
ページング・並び替えに対応した一覧取得。
GET /:id(単体)
主キーによる 1 件取得。
POST /(作成)
入力バリデーション付きの作成。既定値・型を尊重。
PUT/PATCH /:id(更新)
部分更新・全更新。
DELETE /:id(削除)
削除(必要なら論理削除に切替可)。
バリデーション / FK 整合
型・必須・外部キー参照の整合をサーバ側で担保。

まずはスキーマを定義(コピーして使えるひな形)

下は「商品(products)」テーブルの例です。コピーして自分のテーブルに書き換え、d-bye で同じ内容をビジュアルに作ると、この定義から下のような CRUD API が生成されます。

template
| 論理名 | 物理名 | データ型 | 主キー | NOT NULL | 説明 |
|--------|--------|----------|:------:|:--------:|------|
| ID | id | uuid | ○ | ○ | 主キー |
| 商品名 | name | varchar(120) |  | ○ | 必須 |
| SKU | sku | varchar(40) |  | ○ | ユニーク |
| 単価 | price | numeric(10,2) |  | ○ | 0 以上 |
| 仕入先 | supplier_id | uuid(FK) |  | ○ | suppliers を参照 |

CRUD API を生成する手順

  1. テーブルと列(型・NOT NULL・既定値・FK)を定義する。
  2. バックエンドのスタックを選ぶ(Rust actix または Node.js Express)。
  3. CRUD API を設計書から生成する。
  4. プレビュー/生成コードでエンドポイントの挙動を確認する。
  5. コードを生成し、ZIP でエクスポートする。
  6. 自社リポジトリに入れて、手で拡張・デプロイする。

d-bye なら:定義から CRUD API が“動く形”で出る

上の products 定義をビジュアルに作ると、CRUD の一部はおおよそ次のようなコードとして生成されます(Node.js/Express の抜粋。Rust actix も選べます)。

生成される API コード(例・抜粋)
// products.routes.ts — generated by d-bye (Node.js/Express, excerpt)
router.get("/products", async (req, res) => {
  const rows = await db.any(
    "SELECT * FROM products ORDER BY created_at DESC",
  );
  res.json(rows);
});

router.post("/products", validate(ProductInput), async (req, res) => {
  const { name, sku, price, supplier_id } = req.body;
  const row = await db.one(
    `INSERT INTO products (name, sku, price, supplier_id)
     VALUES ($1, $2, $3, $4) RETURNING *`,
    [name, sku, price, supplier_id],
  );
  res.status(201).json(row);
});
  • API だけでなく、フロント(React)の CRUD 画面と PostgreSQL DDL まで一括生成。
  • すべて同じ設計書から導かれるので、API・UI・DB がスタック横断で一致する。
  • 型検証+コンパイルチェックを通すので、壊れたコードを出さない。
  • 生成物は ZIP で全文エクスポート。自社インフラで起動でき、ロックインがない。

よくある質問

データベースのスキーマから REST API を生成できますか?
はい。テーブルと列(型・制約・外部キー)を定義すると、CRUD の REST API を Rust(actix) または Node.js(Express) で生成します。同じ設計書からフロントと PostgreSQL DDL も生成されます。
バックエンドの言語は選べますか?
Rust(actix-web) と Node.js(Express) を切り替えられます。どちらも同じ設計書から生成されるため、フロント・DB との整合は保たれます。
生成後にコードを手で直せますか?
生成物は普通のコードで、ZIP で全文エクスポートできます。読んで・直して・テストを足して・任意のホストにデプロイできます。設計を変えたい場合は設計書を直して再生成します。
AI が出す API コードは壊れませんか?
d-bye は AI に生コードでなく設計書を書かせ、その後に型検証+コンパイルチェックのゲートを通します。仕組みの詳細は Learn の「ちゃんと動く AI コード生成」をご覧ください。

次の一歩

  • 無料の Sandbox でテンプレの API・画面を動くプレビューで試す
  • 在庫・勤怠・申請・顧客の動くテンプレートから着手できる
  • 全文ダウンロードは Personal プラン以上(設計・プレビューはクレカ不要)