Node.js を使ったユーザー管理 RESTful API の構築

JavaScriptBeginner
オンラインで実践に進む

はじめに

このプロジェクトでは、Node.js と Express.js を使って RESTful API を開発する方法を学びます。このプロジェクトでは、ユーザーの一覧を取得できるシンプルなユーザー管理システムを作成します。

👀 プレビュー

curl http://localhost:8080/list
## 出力:
## {"userlist":[{"id":"1","username":"zhangsan","password":"123456"},{"id":"2","username":"lilei","password":"456"},{"id":"3","username":"hanmeimei","password":"123"}]}

🎯 タスク

このプロジェクトでは、以下を学びます。

  • Node.js プロジェクトをセットアップして依存関係をインストールする方法
  • 基本的な Express.js サーバーを作成する方法
  • JSON ファイルからユーザーの一覧を取得する GET エンドポイントを実装する方法
  • cURL を使って API をテストする方法

🏆 成果

このプロジェクトを完了すると、以下ができるようになります。

  • RESTful API 開発の基本を理解する
  • Node.js プロジェクトをセットアップして必要な依存関係をインストールする
  • シンプルな Express.js サーバーを作成する
  • JSON ファイルからデータを取得する GET エンドポイントを実装する
  • cURL を使って API をテストする

プロジェクトをセットアップする

このステップでは、プロジェクトをセットアップして必要な依存関係をインストールします。

この問題の初期コードは既に提供されています。コーディング環境を開き、ディレクトリ構造は以下の通りです。

├── index.js
├── users.json
├── package.json
├── package-lock.json

次に、ターミナルで npm install コマンドを使用して依存関係をダウンロードし、依存関係のダウンロードが完了するまで待ってから、npm run dev コマンドを使用してプロジェクトを起動します。

✨ 解答を確認して練習

GET /list エンドポイントを実装する

このステップでは、GET /list エンドポイントを実装してユーザーの一覧を表示します。

  1. プロジェクトディレクトリ内の index.js ファイルを開きます。
  2. ファイル内の TODO セクションを探して、以下のコードを追加して GET /list エンドポイントを実装します。
//TODO
app.get("/list", function (req, res) {
  fs.readFile(
    path.resolve(__dirname, "./users.json"),
    "utf8",
    function (err, data) {
      data = JSON.parse(data);
      res.json(data);
    }
  );
});

このコードは users.json ファイルを読み取り、JSON データを解析してレスポンスとして送信します。

  1. index.js ファイルを保存します。
✨ 解答を確認して練習

GET /list エンドポイントをテストする

このステップでは、GET /list エンドポイントが正しく機能していることを確認するためにテストします。

  1. 実験環境で新しいターミナルを開きます。
  2. curl コマンドを使用して /list エンドポイントに GET 要求を送信します。
curl http://localhost:8080/list

users.json ファイルからの JSON データである次の出力が表示されるはずです。

{"userlist":[{"id":"1","username":"zhangsan","password":"123456"},{"id":"2","username":"lilei","password":"456"},{"id":"3","username":"hanmeimei","password":"123"}]}

この出力が表示された場合、GET /list エンドポイントは正しく機能しています。

おめでとうございます!あなたはこのプロジェクトを完了し、ユーザーの一覧を表示するための GET /list エンドポイントを実装しました。

✨ 解答を確認して練習

まとめ

おめでとうございます!このプロジェクトを完了しました。あなたの技術を向上させるために、LabEx でさらに多くの実験を行って練習することができます。