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.