MEAN.JS - REST API

ในบทนี้เราจะเห็นแอปพลิเคชันของเราโต้ตอบผ่าน REST API กับฐานข้อมูลของเราโดยใช้วิธี HTTP คำว่าRESTย่อมาจาก REpresentational State Transfer ซึ่งเป็นรูปแบบสถาปัตยกรรมที่ออกแบบมาเพื่อสื่อสารกับบริการเว็บและAPIย่อมาจาก Application Program Interface ที่อนุญาตให้มีการโต้ตอบกับแอปพลิเคชันซึ่งกันและกัน

ขั้นแรกเราจะสร้าง RESTful API เพื่อรับไอเท็มทั้งหมดสร้างไอเท็มและลบไอเท็ม สำหรับแต่ละรายการ_idจะสร้างขึ้นโดยอัตโนมัติโดย MongoDB ตารางด้านล่างอธิบายว่าแอปพลิเคชันควรขอข้อมูลจาก API อย่างไร -

วิธี HTTP เส้นทาง URL คำอธิบาย
รับ

/api/students

ใช้เพื่อรับนักเรียนทั้งหมดจากคอลเล็กชัน Student
โพสต์

/api/students/send

ใช้เพื่อสร้างเรกคอร์ดนักเรียนในคอลเลคชัน Student
ลบ

/api/students/student_id

ใช้เพื่อลบบันทึกนักเรียนออกจากคอลเล็กชัน Student

RESTful API เส้นทาง

ก่อนอื่นเราจะพูดถึงวิธีการโพสต์ใน RESTful API Routes

โพสต์

ก่อนอื่นมาสร้างบันทึกในคอลเล็กชัน Student ผ่าน REST API ของเรา โค้ดสำหรับกรณีนี้สามารถพบได้ในไฟล์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 ที่มีที่นี่เราจะใช้อย่างใดอย่างหนึ่งของนามสกุลที่ใช้งานง่ายสำหรับ Chrome เรียกว่าบุรุษไปรษณีย์ REST ไคลเอ็นต์

เปิด Postman REST Client ป้อน URL เป็น http://localhost:3000/api/students/sendเลือกวิธีการ POST จากนั้นป้อนข้อมูลคำขอตามที่แสดงด้านล่าง -

แจ้งให้ทราบว่าเราจะส่งข้อมูลชื่อเป็นx-www- ฟอร์ม 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 Client ป้อน URL เป็น

http://localhost:3000/api/studentsเลือกGETวิธีการและคลิกที่ปุ่มส่งเพื่อรับนักเรียนทุกคน

ลบ

ต่อไปเรามาดูวิธีการลบบันทึกจากคอลเลกชัน mongo ของเราผ่านการเรียก REST api

ต้องเขียนเส้นทางต่อไปนี้ คุณสามารถค้นหาโค้ดเต็มได้ในไฟล์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 เป็น

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

(ที่นี่ 5d1492fa74f1771faa61146d คือบันทึกที่เราจะลบออกจากคอลเล็กชัน Student)

เลือกวิธีการลบและคลิกที่ปุ่มส่งเพื่อรับนักเรียนทั้งหมด

คุณสามารถตรวจสอบ MongoDB สำหรับข้อมูลที่ถูกลบโดยโทรไปที่ GET http://localhost:3000/api/students/5d1492fa74f1771faa61146d.