MEAN.JS-REST API

この章では、HTTPメソッドを使用してRESTAPIを介してデータベースとアプリケーションが相互作用することを確認します。RESTという用語はREpresentationalState Transferの略で、Webサービスと通信するように設計されたアーキテクチャスタイルであり、APIはアプリケーションの相互作用を可能にするApplication ProgramInterfaceの略です。

まず、RESTful APIを作成して、すべてのアイテムを取得し、アイテムを作成して、アイテムを削除します。アイテムごとに、_idはMongoDBによって自動的に生成されます。次の表は、アプリケーションがAPIからデータを要求する方法を示しています-

HTTPメソッド URLパス 説明
取得する

/api/students

コレクションStudentからすべての学生を取得するために使用されます。
役職

/api/students/send

コレクションStudentに学生レコードを作成するために使用されます。
削除

/api/students/student_id

コレクションStudentから学生レコードを削除するために使用されます。

RESTfulAPIルート

最初に、RESTfulAPIルートのPostメソッドについて説明します。

役職

まず、RESTAPIを介してコレクションStudentにレコードを作成しましょう。この特定のケースのコードは、server.jsファイルにあります。参考までに、コードの一部をここに貼り付けます-

app.post('/api/students/send', function (req, res) {
   var student = new Student(); // create a new instance of the student model
   student.name = req.body.name; // set the student name (comes from the request)
   student.save(function(err) {
      if (err)
         res.send(err);
         res.json({ message: 'student created!' });
   });
});

実行

このアプリケーションのソースコードは、このリンクからダウンロードできます。zipファイルをダウンロードします。システムに抽出します。ターミナルを開き、以下のコマンドを実行してnpmモジュールの依存関係をインストールします。

$ cd mean-demon-consuming_rest_api
$ npm install

リクエストを解析するには、ボディパーサーパッケージが必要です。したがって、以下のコマンドを実行してアプリケーションに含めます。

npm install --save body-parser

添付のソースコードにはすでにこの依存関係があるため、上記のコマンドを実行する必要はありません。これは情報提供のためだけのものです。

アプリケーションを実行するには、新しく作成したプロジェクトディレクトリに移動し、以下のコマンドで実行します-

npm start

下の画像に示すように確認が表示されます-

API呼び出しをテストするためのツールはたくさんありますが、ここでは、Postman RESTClientと呼ばれるChromeのユーザーフレンドリーな拡張機能の1つを使用しています。

Postman RESTクライアントを開き、URLを次のように入力します http://localhost:3000/api/students/sendPOSTメソッドを選択します。次に、以下のようにリクエストデータを入力します-

名前データをx-www-form-urlencodedとして送信していることに注意してください。これにより、すべてのデータがクエリ文字列としてノードサーバーに送信されます。

[送信]ボタンをクリックして、学生の記録を作成します。以下に示すように成功メッセージが表示されます-

取得する

次に、mongodbからすべての学生レコードを取得しましょう。次のルートを書く必要があります。完全なコードはserver.jsファイルにあります。

app.get('/api/students', function(req, res) {
   // use mongoose to get all students in the database
   Student.find(function(err, students) {
      // if there is an error retrieving, send the error.
      // nothing after res.send(err) will execute
      if (err)
         res.send(err);
      res.json(students); // return all students in JSON format
   });
});

次に、Postman RESTクライアントを開き、URLを次のように入力します。

http://localhost:3000/api/studentsGETメソッドを選択し、[送信]ボタンをクリックして、すべての生徒を取得します。

削除

次に、RESTapi呼び出しを介してmongoコレクションからレコードを削除する方法を見てみましょう。

次のルートを書く必要があります。完全なコードはserver.jsファイルにあります。

app.delete('/api/students/:student_id', function (req, res) {
   Student.remove({
      _id: req.params.student_id
   }, function(err, bear) {
      if (err)
         res.send(err);
      res.json({ message: 'Successfully deleted' });
   });
});

次に、Postman RESTクライアントを開き、URLを次のように入力します。

http://localhost:3000/api/students/5d1492fa74f1771faa61146d

(ここで、5d1492fa74f1771faa61146dは、コレクションStudentから削除するレコードです)。

DELETEメソッドを選択し、[送信]ボタンをクリックして、すべての生徒を取得します。

GET呼び出しを行うことで、削除されたデータについてMongoDBを確認できます。 http://localhost:3000/api/students/5d1492fa74f1771faa61146d