コース一覧
    Node.js認証・本番運用
    自由拡張

    Node.js認証・本番運用

    認証、認可、フロントエンド連携、本番運用を学び、Node.jsで保守可能なサービスを完成させられるようにします。

    1
    認証のきほん
    01. 認証と認可15分
    02. パスワードハッシュ15分
    03. ログインとトークン15分
    04. 保護ルート15分
    05. 本人のものだけ15分
    06. つくる:認証完備20分
    07. 第7章クイズ10分
    2
    総合制作
    01. fleama API完成20分
    02. Reactと接続する20分
    03. サーバーで常駐させる20分
    04. 自由拡張20分
    05. 完成と次のステップ15分

    自由拡張

    設計から自分でやってみる

    ここまでは、設計図が先にありました。最後は自分で設計するところから始めます。

    フリマに足したい機能を 1 つ選んでください。たとえば次のようなものです。

    • いいね — 気になる商品に印を付ける
    • コメント — 商品に質問を書き込む
    • 出品者の一覧 — その人の商品だけを見る

    手順は毎回同じ

    どの機能でも、進め方は変わりません。第4章から繰り返してきた形です。

    プレーンテキスト

    1. リソースを決める        いいね  → likes
    2. 表を書く                POST /items/:id/like    いいねを付ける
                               DELETE /items/:id/like  いいねを外す
                               GET /items/:id/likes    いいねの数を返す
    3. 返すコードを決める      201 / 204 / 200 / 401 / 404 / 409
    4. 実装する

    表を書くところまでが設計で、実装はその後です。順番を逆にすると、作りながら形が変わっていきます。

    迷ったときの判断材料

    設計で迷ったら、これまで出てきた基準に当てはめてください。

    迷い手がかり
    パスに動詞を入れたくなったリソースとメソッドで表せないか
    一覧が 0 件のとき空の配列で 200
    ログインが要るか誰がやっても同じ結果なら不要
    すでにいいね済みだったら状態の矛盾なので 409

    同じ操作を2回されたらどうするか

    拡張でよく出てくる問いです。いいねを 2 回押されたら、どうしますか。

    選択肢は 2 つあります。

    1. 409 を返して断る
    2. すでに付いているので、何もせず成功として返す

    どちらも正解です。2 回押しても結果が変わらないようにしておくと、通信が途中で切れて再送されたときに安全です。この性質は、変更系の API を設計するときに何度も出てきます。

    手を動かす

    演習では、いいね機能を実装します。設計の判断が、コードのどこに現れるかを確かめてください。

    要件

    1. POST /items/:id/like は requireAuth を掛け、商品が無ければ 404、すでに付けていれば 409
    2. 付けられたら likes 表に記録し、201 で {itemId, likes} を返す
    3. GET /items/:id/likes はログインなしで {itemId, likes} を返す(商品が無ければ 404)

    ヒント

    初期コードには件数を返すルートだけがあります。404 の確認を足し、いいねを付けるルートを作ります

    確かめる順番は 401(ミドルウェア) → 404 → 409 です

    すでに付けているかは `WHERE item_id = ? AND user_name = ?` で探せます

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

    関連レッスン

    • 完成と次のステップ

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

    • サーバーで常駐させる

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

    • Reactと接続する

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

    • fleama API完成

      第4章で作った一覧表と突き合わせ、仕様を満たし切れるようになります。

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

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

    • 設計何をどう作るかを決める前工程
    • コメント# で1行コメント。
    • 判断YES/NO 分岐を表す菱形
    • メソッドクラスに属する関数
    • 配列サイズ固定の同型データの集まり
    • エンドポイント「この URL を叩くとこの機能が動く」入口の住所
    • APIアプリ間でデータをやり取りする窓口
    main.js
    エディタを読み込んでいます

    メモ

    自由拡張

    ⌘S で保存