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

    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分

    JSONを返す

    文字列では受け取る側が困る

    ここまで res.send("商品一覧です") のように文字列を返してきました。人が読む分にはよいのですが、React アプリが受け取っても使えません。

    受け取る側がほしいのは、そのまま扱えるデータです。

    JavaScript

    res.json({ id: 1, name: "レザースニーカー", price: 4800 });

    こう返すと、受け取った側は data.price のように読めます。API が JSON を返すのは、相手がプログラムだからです。

    res.json がやってくれること

    res.json は 2 つのことを同時にやります。

    1. 渡したオブジェクトを JSON の文字列に変える
    2. 「これは JSON です」と応答に書き添える

    2 つ目が大切です。受け取った側は、この印を見て中身を解釈します。res.send で JSON.stringify した文字列を渡しても、印が付かないので相手が扱いを間違えることがあります。JSON を返すときは res.json を使ってください。

    配列も返せる

    一覧を返すときは配列を渡します。

    JavaScript

    app.get("/items", (req, res) => {
      res.json([
        { id: 1, name: "レザースニーカー", price: 4800 },
        { id: 2, name: "古着のデニムジャケット", price: 6200 },
      ]);
    });

    これで GET /items が、フリマの商品一覧を返す API になりました。第2章で作ったデータ層とつなげば、ファイルの中身がそのまま API の応答になります。

    何を返し、何を返さないか

    持っているデータを全部返す必要はありません。

    JavaScript

    const item = { id: 1, name: "レザースニーカー", price: 4800, ownerEmail: "..." };
    
    res.json({ id: item.id, name: item.name, price: item.price });

    出品者のメールアドレスは、一覧を見る人には要らない情報です。返すものは選ぶ、と覚えてください。うっかり全部返すと、見せるつもりのなかったものが外に出ます。第7章の認証で、この判断がもう一度出てきます。

    手を動かす

    演習では、商品の一覧と 1 件を JSON で返します。返す項目を自分で選んでください。

    要件

    1. GET /items は 2 件の商品を配列で返す
    2. GET /item は先頭の 1 件だけをオブジェクトで返す
    3. 返す項目は id name price の 3 つだけにして、ownerEmail は含めない

    ヒント

    `res.send` を `res.json` に変えるところから始めます

    返す項目を絞るには、`{ id: item.id, name: item.name, price: item.price }` の形を作ります

    一覧は `items.map(...)` で 1 件ずつ絞った配列にしてから渡します

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

    関連レッスン

    • 開発の回し方

      変更から確認までを短くする回し方を知り、開発を高速化できるようになります。

    • つくる:サーバー始動

      健康確認と商品一覧のパスを備え、起動から応答までを自力で組めるようになります。

    • 第3章クイズ

      Expressとルーティングの理解を4択で確認します。

    • RESTの考え方

      fleamaのAPI一覧表を設計し、リソースとメソッドで設計できるようになります。

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

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

    • エンドポイント「この URL を叩くとこの機能が動く」入口の住所
    • APIアプリ間でデータをやり取りする窓口
    • applicationJSON 本文を送るときの Content-Type
    • オブジェクトキーと値のペアで構造を作るデータ
    • 配列サイズ固定の同型データの集まり
    • 認証「この人は本当に本人?」のチェック
    • 判断YES/NO 分岐を表す菱形
    main.js
    エディタを読み込んでいます

    メモ

    JSONを返す

    ⌘S で保存