1. 全部そろっているとき
  2. 実装が抜けているとき
  3. 設計図に無いものが実装されているとき
  4. 順番が違っても揃っていれば完成
コース一覧
Node.js入門
fleama API完成

Node.js入門

Node.jsの実行モデル、npm、Expressによるルーティング、REST API設計、データベース接続、トランザクションを使った購入処理、トークン認証まで、バックエンド開発の基礎を、毎レッスン実際にコードを書き、フリマアプリのAPIを自分の手で作りながら学びます。

1
Node.jsとは
01. Node.jsとは15分
02. スクリプトを実行する15分
03. npmとは15分
04. package.json15分
05. npmスクリプト15分
06. つくる:プロジェクト始動20分
07. 第1章クイズ10分
2
モジュールと非同期の復習
01. import/export15分
02. ファイルを読み書きする15分
03. async/await復習15分
04. JSONの取り回し15分
05. つくる:データ層20分
06. 第2章クイズ10分
3
はじめてのサーバー
01. サーバーとリクエスト15分
02. Expressを導入する15分
03. ルーティング15分
04. JSONを返す15分
05. 開発の回し方15分
06. つくる:サーバー始動20分
07. 第3章クイズ10分
4
REST APIのきほん
01. RESTの考え方15分
02. 一覧を返す15分
03. 1件を返す15分
04. 登録を受ける15分
05. 更新と削除15分
06. ステータスコード15分
07. つくる:商品CRUD完成20分
08. 第4章クイズ10分
5
リクエスト処理と検証
01. クエリパラメータ15分
02. 並び替えとページング15分
03. 入力検証15分
04. ミドルウェア15分
05. エラーハンドリング15分
06. つくる:検索API完成20分
07. 第5章クイズ10分
6
データベース接続
01. DBにつなぐ15分
02. 一覧・詳細をDB化15分
03. 出品をDB化15分
04. SQLインジェクション20分
05. 更新・削除をDB化15分
06. 購入トランザクション20分
07. つくる:DB版fleama20分
08. 第6章クイズ10分
7
認証のきほん
01. 認証と認可15分
02. パスワードハッシュ15分
03. ログインとトークン15分
04. 保護ルート15分
05. 本人のものだけ15分
06. つくる:認証完備20分
07. 第7章クイズ10分
8
総合制作
01. fleama API完成20分
02. Reactと接続する20分
03. サーバーで常駐させる20分
04. 自由拡張20分
05. 完成と次のステップ15分

fleama API完成

設計図と実物を突き合わせる

第4章で、実装の前に表を書きました。総合制作では、そこへ戻ります。

プレーンテキスト

GET /items 商品一覧を返す 200 GET /items/:id 商品1件を返す 200 / 404 POST /items 商品を登録する 201 / 400 / 401 PUT /items/:id 商品を書き換える 200 / 400 / 401 / 403 / 404 DELETE /items/:id 商品を削除する 204 / 401 / 403 / 404 POST /items/:id/buy 商品を購入する 200 / 401 / 404 / 409 POST /login トークンを発行する 200 / 401

第4章の時点では、返すコードは 200 と 201 と 404 だけでした。検証と認証を通ったいま、1 行あたりのコードが増えています。API が丈夫になった分だけ、断り方が増えたということです。

完成の基準は自分で確かめられる

表があると「できた」を自分で判定できます。1 行ずつ、実際に呼んで確かめるだけです。

表に無いものが実装されていたら、それは設計から漏れた機能です。表にあるのに動かないなら、まだ途中です。どちらも表を見なければ気付けません。

抜けやすいのは失敗のほうです

成功する道は、作りながら何度も通るので抜けません。抜けるのは失敗のほうです。

  • ログインせずに削除したら 401 が返るか
  • 他人の商品を編集したら 403 が返るか
  • 売り切れを買ったら 409 が返るか

これらは意識して試さないと通りません。失敗の道こそ確かめてください。

変えていないものにも意味がある

第3章で決めた GET /items の形は、第6章でデータベースへ移っても、第7章で認証が付いても変わっていません。

中身は総入れ替えになったのに、外から見た約束は保たれています。データ層を分けたこと、REST で設計したことの成果です。外の約束を変えずに中を作り替えられるというのが、設計がうまくいっている印です。

手を動かす

演習では、設計図と実物を突き合わせる仕組みを書きます。抜けている行を見つけてください。

要件

  1. missing は設計図にあって実装に無いものを、設計図の順で並べる
  2. extra は実装にあって設計図に無いものを、実装の順で並べる
  3. complete は missing と extra がどちらも空のときだけ true

入出力例

checkSpec(["GET /items","POST /items"], ["GET /items","POST /items"]) → {"complete":true,"extra":[],"missing":[]} checkSpec(["GET /items","POST /items","DELETE /items/:id"], ["GET /items"]) → {"complete":false,"extra":[],"missing":["POST /items","DELETE /items/:id"]} checkSpec(["GET /items"], ["GET /items","GET /admin/all"]) → {"complete":false,"extra":["GET /admin/all"],"missing":[]} checkSpec(["GET /items","POST /items"], ["POST /items","GET /items"]) → {"complete":true,"extra":[],"missing":[]}

ヒント

設計図の側を `filter` して、実装に含まれないものを残せば `missing` になります

含まれるかどうかは `implemented.includes(route)` で確かめられます

`extra` は同じことを逆向きにやります

生田 陸人
監修生田 陸人
ゆめさくエンジニア / 現役ソフトウェアエンジニア監修者プロフィールを見る →
編集 ゆめさく編集部·公開 2026/08/10

関連レッスン

  • Reactと接続する

    モックを自作APIへ差し替え、フロントとバックをつなげられるようになります。

  • サーバーで常駐させる

    常駐の設定を書き、本番の形で動かせるようになります。

  • 自由拡張

    欲しいAPIを設計から実装し、自分で機能を足せるようになります。

  • 完成と次のステップ

    作ったAPIの全体像を振り返り、フルスタックの流れを語れるようになります。

このレッスンに出てくる用語

意味があいまいなまま進んだ語は、ここから読み直せます。

  • 設計何をどう作るかを決める前工程
  • 認証「この人は本当に本人?」のチェック
  • エンドポイント「この URL を叩くとこの機能が動く」入口の住所
  • APIアプリ間でデータをやり取りする窓口
  • データベースデータを構造化して保存する仕組み
main.js
学習モード
エディタを読み込んでいます

メモ

fleama API完成

⌘S で保存