Skip to the content.

0001. TypeScript 型を API 仕様の正本とする

Context

resource-planner は SvelteKit (+page.server.ts の load + form actions) で SSR + サーバーサイド処理を完結させる 内部 RPC スタイル のアプリ。外部公開する REST / GraphQL API は持たない。

この構成で「アプリの基本設計 / API 仕様」をどう文書化するかを決めたい。選択肢:

業界調査 (SvelteKit / Remix / Next.js Server Actions / tRPC 文化) では、内部 RPC アプリでは (B) 型駆動 が多数派という結論。理由:

Decision

OpenAPI は採用しない。 API 仕様の正本は以下とする:

  1. TypeScript 型 (web/src/lib/types.ts 想定) — request/response の型定義
  2. Zod / Valibot schema — 実行時検証も兼ねる仕様 (form action の入力バリデーション)
  3. docs/use-cases.md — Mermaid sequence diagram で動的振る舞いを記述
  4. docs/adr/ — 判断の経緯を残す
  5. docs/architecture.drawio — Container 図 (C4 model 準拠)
  6. docs/db/ — データモデル仕様 (tbls 自動生成 + 手書き entities/access-patterns)

Consequences

Positive

Negative

Neutral

Alternatives considered

References