วิธีการการใช้ Node.js เพื่อสำหรับทำ Restful API

Jquery & Ajax Knowledge ความรู้เกี่ยวกับ Javascript , Jquery ม Ajax

Moderators: mindphp, ผู้ดูแลกระดาน

Grammanano
PHP Sr. Member
PHP Sr. Member
Posts: 60
Joined: 02/12/2019 10:16 am

วิธีการการใช้ Node.js เพื่อสำหรับทำ Restful API

Post by Grammanano » 03/12/2019 2:53 pm

Restful API สามารถส่งคำร้องขอข้อมูลไปยัง server และสามารถโต้ตอบกันได้ ในส่วนของ Node.js จะมีการตอบกลับมาในรูปแบบของ JSON

โดยรูปแบบการทำงานคือ ฝั่ง Client จะมีการส่งคำร้องขอไปยัง server โดยใช้คำสั่ง get, post, put, delete ส่วนฝั่ง server จะตอบข้อมูลกลับไปพร้อมสถานะของ HTTP เช่น หากไม่พบข้อมูลที่ร้องขอจากเครื่องแม่ข่าย จะขึ้นสถานะเป็น 404 Not found

ในส่วนของ method ที่ใช้บ่อย ๆ คือ
get สำหรับขอข้อมูล
post สำหรับเพิ่มข้อมูล
put สำหรับแก้ไขข้อมูล (ในบางแห่งอาจใช้ patch สามารถแก้ข้อมูลได้เช่นกัน)
delete สำหรับลบข้อมูล

รูปแบบการเขียน
ยกตัวอย่างการใช้ get

Code: Select all

app.get('/get', function (req, res) {
  console.log('data');
  res.send(data);
});
โดยในวงเล็บบรรทัดแรกจะเป็น reference ของไฟล์ที่เรียกใช้ API ตัวนี้ จากนั้นจึงทำการส่ง request และรับ response มาจาก server
res.send(data) จะเป็นการส่งค่า data ที่ได้มากลับไปยังไฟล์ที่เรียกใช้ API

ยกตัวอย่างการใช้ post

Code: Select all

app.post("/add", async (req, res) => {
   console.log('add data');
   product: req.body.productName,
   product.save().then(data => {
      res.status(200).json(data);
    });
});
เมื่อมีการเรียกใช้ API ตัวนี้ จะทำการรับค่า productName มาจากไฟล์ที่เรียกใช้ และนำมาเก็บไว้ใน product จากนั้นจึงส่งข้อมูลไปยัง server เพื่อเพิ่ม แล้วส่งสถานะกลับมา ( HTTP status )

ตัวอย่างการใช้ put

Code: Select all

app.put("/edit", async (req, res) => {

  const id = req.body._id;
  Product.findByIdAndUpdate(id, {$set:req.body}, function(err, result){
    if(err){
      console.log(err);
    }
    console.log("RESULT: " + result);
  });
  res.send('Done')
  res.status(200).json(data);
   
});
เมื่อเรียกใช้ API ตัวนี้ จะเป็นการให้ตัวแปร id เก็บค่าของ _id จากตัวแปรที่เรียกใช้ คำสั่ง .findByIdAndUpdate() จะส่ง id ไปค้นหาแล้วนำค่าที่ต้องการแก้ไขไป update ใน server

(***put กับ patch ใช้ในการแก้ไขข้อมูลเหมือนกัน ต่างกันตรงที่หากแก้ไขข้อมูลโดยใช้ put จะต้องใส่ข้อมูลเดิมที่ไม่ต้องการแก้ไขอีกครั้งด้วย แต่ patch จะแก้ไขข้อมูลใหม่โดยที่ข้อมูลเดิมยังอยู่)

ตัวอย่างการใช้ delete

Code: Select all

app.delete("/del", (req, res, next) => {
  const id = req.body._id;
  console.log(id);
  Product.findByIdAndDelete({ _id: id })
    .then(result => {
      res.status(200).json(result);
    })
});
เมื่อเรียกใช้ API นี้ คำสั่ง .findByIdAndDelete() จะทำการนำ id จากตัวแปรที่เรียกใช้ไปค้นหาข้อมูลใน server และลบออก



อ้างอิงจาก https://www.thaiprogrammer.org/

บทความที่เกี่ยวข้อง
การใช้ API ของไปรษณีย์ไทย
REST API คืออะไร
ข้อแตกต่างระหว่าง SOAP กับ REST
ทำความรู้จักกับ Node.js

Return to “Jquery & Ajax Knowledge”

Who is online

Users browsing this forum: No registered users and 1 guest