TypeScript + Express で REST API を構築する実践的なチュートリアル教材です。
このチュートリアルでは、シンプルな ToDo 管理 API を段階的に構築しながら、バックエンド開発の基礎を学びます。
- Node.js + TypeScript + Express での REST API 開発
- Prisma によるデータベース操作
- Zod を使ったバリデーション
- Vitest でのテスト
- Docker によるコンテナ化
- Cloud Run へのデプロイ
- JavaScript の基礎(変数、関数、async/await など)
- Git の基本操作
Node.js、TypeScript、Express の知識は不要です。
- はじめに - チュートリアルの概要
- 第1章:プロジェクトセットアップ - 開発環境の構築
- 第2章:Express 基礎 - フレームワークの基本
- 第3章:REST API 設計と実装 - ToDo API の実装
- 第4章:Prisma によるデータ永続化 - データベース接続
- 第5章:テスト - API のテスト
- 第6章:Docker化 - コンテナ化
- 第7章:Cloud Run へデプロイ - 本番環境へデプロイ
.
├── README.md # このファイル
├── docs/ # チュートリアルドキュメント
├── backend/ # スタート地点(受講者用)
├── complete/ # 模範解答
└── frontend/ # 配布用 SPA
git clone https://github.com/your-username/typescript-webapi-tutorial.git
cd typescript-webapi-tutorialまたは、GitHub でこのリポジトリを テンプレート として使用して、自分のリポジトリを作成してください。
cd backend
npm installはじめに を読んで、第1章から順に進めてください。
| カテゴリ | 技術 | バージョン |
|---|---|---|
| Runtime | Node.js | v22 |
| 言語 | TypeScript | ^5.7.0 |
| フレームワーク | Express | ^5.1.0 |
| バリデーション | Zod | ^3.25.0 |
| ORM | Prisma | ^6.0.0 |
| DB | SQLite | - |
| テスト | Vitest | ^3.1.0 |
| Lint/Format | Biome | ^1.9.0 |
| カテゴリ | 技術 | バージョン |
|---|---|---|
| ビルドツール | Vite | ^6.0.0 |
| UIライブラリ | React | ^19.0.0 |
| データフェッチ | TanStack Query | ^5.0.0 |
| スタイリング | Tailwind CSS | v4 |
frontend/ ディレクトリには、完成済みの SPA が用意されています。
cd frontend
npm install
npm run devブラウザで http://localhost:5173 を開くと、ToDo アプリが表示されます。
あなたが作成した API(http://localhost:3000)に接続して、実際に ToDo の追加・削除・完了切り替えができます。
詳細は API 仕様書 を参照してください。
| メソッド | パス | 説明 |
|---|---|---|
| GET | /api/todos |
一覧取得 |
| POST | /api/todos |
新規作成 |
| GET | /api/todos/:id |
単体取得 |
| PATCH | /api/todos/:id |
更新 |
| DELETE | /api/todos/:id |
削除 |
各章完了時点のコードは、ブランチまたはタグで参照できます:
chapter/1 → 第1章完了時点
chapter/2 → 第2章完了時点
chapter/3 → 第3章完了時点
...
chapter/7 → 第7章完了時点(完成形)
困ったときは、対応するブランチを checkout して参照してください:
git checkout chapter/3Node.js のバージョンが v22 以上であることを確認してください:
node --version.env ファイルで別のポートを指定してください:
PORT=3001npm run build でビルドエラーがないか確認してください。
このチュートリアルへの改善提案は Issue や Pull Request で歓迎します!
MIT License
このチュートリアルは「ハンズオン Node.js」(オライリー、2020年)の第5, 7, 8, 9章をベースに、2025年の技術スタックでリライトしたものです。
Happy Coding! 🚀