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 を生成する手順
- テーブルと列(型・NOT NULL・既定値・FK)を定義する。
- バックエンドのスタックを選ぶ(Rust actix または Node.js Express)。
- CRUD API を設計書から生成する。
- プレビュー/生成コードでエンドポイントの挙動を確認する。
- コードを生成し、ZIP でエクスポートする。
- 自社リポジトリに入れて、手で拡張・デプロイする。
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 プラン以上(設計・プレビューはクレカ不要)