コース一覧
    Node.js API開発
    一覧を返す

    Node.js API開発

    HTTPサーバーとREST APIの設計・実装を学び、Node.jsでクライアントから使えるAPIを構築できるようにします。

    1
    はじめてのサーバー
    01. サーバーとリクエスト15分
    02. Expressを導入する15分
    03. ルーティング15分
    04. JSONを返す15分
    05. 開発の回し方15分
    06. つくる:サーバー始動20分
    07. 第3章クイズ10分
    2
    REST APIのきほん
    01. RESTの考え方15分
    02. 一覧を返す15分
    03. 1件を返す15分
    04. 登録を受ける15分
    05. 更新と削除15分
    06. ステータスコード15分
    07. つくる:商品CRUD完成20分
    08. 第4章クイズ10分

    一覧を返す

    設計図の1行目を実装する

    前のレッスンで書いた表の 1 行目から始めます。

    プレーンテキスト

    GET /items  商品一覧を返す

    第3章で似たものを作りました。今回はそれを、API として使える形に整えます。

    一覧は必ず配列で返す

    商品が 1 件でも、0 件でも、返すのは配列です。

    JavaScript

    app.get("/items", (req, res) => {
      res.json(items);
    });

    0 件のときに { "message": "商品がありません" } のようなオブジェクトを返したくなりますが、してはいけません。受け取る側が困るからです。

    JavaScript

    // 受け取る側
    const items = await response.json();
    items.map((item) => ...); // 配列でないと落ちる

    同じパスは、いつ呼んでも同じ形を返す。 中身が空でも形は変えない、というのが約束です。0 件なら [] を返します。

    空も正常です

    商品が 1 件も無いのは、エラーではありません。「探したけれど無かった」は、探す処理としては成功しています。

    ですから 404 ではなく 200 を返し、本文は [] にします。404 は「そのパス自体が無い」ときのものです。次のレッスンで、404 を返すべき場面が出てきます。

    返す前に整える

    第3章で触れたとおり、持っているものを全部返す必要はありません。

    JavaScript

    app.get("/items", (req, res) => {
      res.json(items.map((item) => ({
        id: item.id,
        name: item.name,
        price: item.price,
        sold: item.sold,
      })));
    });

    一覧に出す項目は、一覧の画面で必要なものだけです。出品者の連絡先や、商品説明の長い文章は、詳細を見るときに取れば足ります。一覧が軽くなるという実利もあります。

    手を動かす

    演習では、商品一覧の API を作ります。空のときの振る舞いにも気を配ってください。

    要件

    1. GET /items は id name price sold だけにした商品の配列を返す
    2. GET /empty は空の配列 [] を 200 で返す
    3. どちらも ownerEmail を含めない

    ヒント

    初期コードは `items` をそのまま返しているので、`ownerEmail` まで外に出ています

    1 件を必要な項目だけに整える関数を作って、`items.map(...)` に渡します

    0 件のときもオブジェクトではなく配列を返します。`res.json([])` です

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

    関連レッスン

    • 1件を返す

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

    • 登録を受ける

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

    • 更新と削除

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

    • ステータスコード

      各APIの返却コードを整え、状況に応じた番号を返せるようになります。

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

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

    • 設計何をどう作るかを決める前工程
    • エンドポイント「この URL を叩くとこの機能が動く」入口の住所
    • APIアプリ間でデータをやり取りする窓口
    • 配列サイズ固定の同型データの集まり
    • オブジェクトキーと値のペアで構造を作るデータ
    • 処理計算や代入を表す長方形
    main.js
    エディタを読み込んでいます

    メモ

    一覧を返す

    ⌘S で保存