1. 一覧はコレクションに対する GET
  2. 登録はコレクションに対する POST
  3. 詳細は個別のパスに対する GET
  4. 更新は個別のパスに対する PUT
  5. 削除は個別のパスに対する DELETE
  6. 知らない操作のとき
コース一覧
Node.js入門
RESTの考え方

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分

RESTの考え方

パスに動詞を入れない

API を自己流で設計すると、こうなりがちです。

プレーンテキスト

/getItems /createItem /deleteItemById

動くのですが、機能が増えるほど名前が散らかります。/getItemsSortedByPrice のようなパスが生まれ、どこに何があるのか分からなくなります。

REST は、この散らかりを止める決まりごとです。考え方は 1 つだけです。

パスは「何に対して」だけを表し、「何をするか」はメソッドで表す。

リソースとメソッドの掛け算

この決まりに従うと、さっきの 3 つはこうなります。

したいことメソッドパス
一覧を見るGET/items
1 件を見るGET/items/1
登録するPOST/items
書き換えるPUT/items/1
削除するDELETE/items/1

パスは /items と /items/1 の 2 種類だけです。あとはメソッドの組み合わせで表しています。動詞をパスから追い出してメソッドへ移した結果です。

この「何に対して」にあたるものをリソースと呼びます。fleama なら商品がリソースです。

2 種類のパス

リソースには 2 つの形があります。

形例指すもの
コレクション/items商品の集まり全体
個別/items/1id が 1 の商品

POST はコレクションに対して行います。/items に「この商品を仲間に入れて」と頼む形です。PUT と DELETE は、どれを対象にするか決まっているので個別のパスに対して行います。

設計は表から始める

実装の前に、この表を書きます。

プレーンテキスト

GET /items 商品一覧を返す GET /items/:id 商品1件を返す POST /items 商品を登録する PUT /items/:id 商品を書き換える DELETE /items/:id 商品を削除する

これが fleama API の設計図です。第4章では、この 5 行を上から順に実装していきます。第8章の総合制作では、この表と実物を突き合わせて完成を確かめます。

手を動かす

演習では、やりたいことから、正しいメソッドとパスの組み合わせを導く関数を書きます。表を自分で引けるようにしてください。

要件

  1. list なら GET /items、create なら POST /items
  2. detail なら GET /items/<id>、update なら PUT /items/<id>、delete なら DELETE /items/<id>
  3. そのどれでもないときは 対応していない操作です を返す

入出力例

designRoute("list", 1) → "GET /items" designRoute("create", 1) → "POST /items" designRoute("detail", 3) → "GET /items/3" designRoute("update", 2) → "PUT /items/2" designRoute("delete", 7) → "DELETE /items/7" designRoute("search", 1) → "対応していない操作です"

ヒント

一覧と登録はコレクション `/items` に対して行うので、id は使いません

詳細・更新・削除は `/items/` のうしろに id をつなぎます

どれにも当てはまらなかったときの返り値は、最後の 1 行がそのまま使えます

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

関連レッスン

  • 一覧を返す

    商品一覧APIを書き、コレクションを返せるようになります。

  • 1件を返す

    商品詳細APIを書き、見つからないときに404を返せるようになります。

  • 登録を受ける

    出品APIを書き、作成したときに201を返せるようになります。

  • 更新と削除

    商品編集と取下げのAPIを書き、変更系を実装できるようになります。

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

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

  • エンドポイント「この URL を叩くとこの機能が動く」入口の住所
  • APIアプリ間でデータをやり取りする窓口
  • 設計何をどう作るかを決める前工程
  • メソッドクラスに属する関数
  • 関数処理に名前を付けて再利用できる単位
main.js
学習モード
エディタを読み込んでいます

メモ

RESTの考え方

⌘S で保存