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/send、POSTメソッドを選択します。次に、以下のようにリクエストデータを入力します-
名前データを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/students、GETメソッドを選択し、[送信]ボタンをクリックして、すべての生徒を取得します。
削除
次に、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。