MEAN.JS - REST API



在本节中,我们将看到我们的应用程序如何通过 REST API 与我们的数据库进行交互,并使用 HTTP 方法。术语REST代表表现层状态转移(REpresentational State Transfer),这是一种用于与 Web 服务通信的架构风格,而API代表应用程序编程接口(Application Program Interface),它允许应用程序相互交互。

首先,我们将创建 RESTful API 来获取所有项目、创建项目和删除项目。对于每个项目,_id将由 MongoDB 自动生成。下表描述了应用程序如何从 API 请求数据:

HTTP 方法 URL 路径 描述
GET

/api/students

用于从 Student 集合中获取所有学生。
POST

/api/students/send

用于在 Student 集合中创建一个学生记录。
DELETE

/api/students/student_id

用于从 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

为了解析请求,我们需要 body-parser 包。因此,运行以下命令将其包含在您的应用程序中。

npm install --save body-parser

附加的源代码已经包含此依赖项,因此无需运行上述命令,这仅供参考。

要运行应用程序,请导航到您新创建的项目目录,并使用以下命令运行:

npm start

您将获得如下所示的确认信息:

Execution

有很多工具可以测试 API 调用,这里我们使用 Chrome 的一个用户友好的扩展程序,称为Postman REST Client

打开 Postman REST Client,输入 URL 为https://127.0.0.1:3000/api/students/send,选择POST 方法。接下来,输入如下所示的请求数据:

Post Method

请注意,我们正在将名称数据作为x-www-form-urlencoded发送。这会将我们所有数据作为查询字符串发送到 Node 服务器。

单击发送按钮以创建学生记录。将出现如下所示的成功消息:

Student Record

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 Client,输入 URL 为

https://127.0.0.1:3000/api/students,选择GET方法,然后单击发送按钮以获取所有学生。

GET Method

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 Client,输入 URL 为

https://127.0.0.1:3000/api/students/5d1492fa74f1771faa61146d

(此处 5d1492fa74f1771faa61146d 是我们将从 Student 集合中删除的记录)。

选择DELETE方法,然后单击发送按钮以获取所有学生。

Delete Method

您可以通过对https://127.0.0.1:3000/api/students/5d1492fa74f1771faa61146d进行 GET 调用来检查 MongoDB 中已删除的数据。

广告