Meanjs-rest-api
MEAN.JS-REST API
この章では、HTTPメソッドを使用して、REST APIを介してデータベースと対話するアプリケーションについて説明します。 _REST_という用語は、Webサービスと通信するように設計されたアーキテクチャスタイルであるREpresentational State Transferを表し、_API_はアプリケーションの相互作用を可能にするアプリケーションプログラムインターフェイスを表します。
最初に、すべてのアイテムを取得するRESTful APIを作成し、アイテムを作成して、アイテムを削除します。 各アイテムについて、__ id_はMongoDBによって自動的に生成されます。 次の表は、アプリケーションがAPIからデータを要求する方法を示しています-
HTTP Method | URL Path | Description |
---|---|---|
GET | /api/students | It is used to get all the students from collection Student. |
POST | /api/students/send | It is used to create a student record in collection Student. |
DELETE | /api/students/student_id | It is used to delete a student record from collection Student. |
RESTful APIルート
最初に、RESTful APIルートのPostメソッドについて説明します。
POST
最初に、REST APIを使用して、コレクション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 REST Client_と呼ばれるユーザーフレンドリーなChrome拡張機能を使用しています。
Postman RESTクライアントを開き、URLに http://localhost:3000/api/students/send を入力し、_POST method_を選択します。 次に、以下に示すように要求データを入力します-
名前データを_x-www-form-urlencoded_として送信していることに注意してください。 これにより、すべてのデータがクエリ文字列としてNodeサーバーに送信されます。
[送信]ボタンをクリックして、学生レコードを作成します。 以下に示すように成功メッセージが表示されます-
GET
次に、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_メソッドを選択し、送信ボタンをクリックしてすべての生徒を取得します。
DELETE
次に、REST api呼び出しを介して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_メソッドを選択し、_Send_ボタンをクリックして、すべての生徒を取得します。
*_http://localhost:3000/api/students/5d1492fa74f1771faa61146d_* に対してGET呼び出しを行うことにより、削除されたデータのMongoDBを確認できます。