ในการสร้างไมโครเซอร์วิสแอพพลิเคชันและสร้าง API แบบ REST (Representation State) เพื่อรับการเรียกใช้บริการจากไคลเอ็นต์ด้วย HTTP นั้น การรับรีเควสต์ Post กับ Put มักจะถูกออกแบบให้สับสนกันอยู่เสมอเนื่องจากไม่ได้ถูกกำหนดไว้เป็นมาตรฐานที่ชัดเจน แต่กรณีของ REST API นั้นมีประเพณีนิยมที่เป็นรูปแบบสากลคือ

  • Put ให้ใช้กับเฉพาะ Create หรือ Update ข้อมูล เท่านั้น และเป็น Create หรือ Update ข้อมูลที่รหัสประจำตัวข้อมูล (Identifier) เป็นส่วนหนึ่งของ URL อย่างชัดเจนด้วย เช่น
    • ถ้า Put มาที่ http://www.sornet.net/members/1234 นั่นหมายความว่า
    • ถ้ามีสมาชิกรหัส 1234 อยู่แล้วให้นำข้อมูลใน Body ไปอัพเดตข้อมูลสมาชิกรหัส 1234
    • ถ้าไม่มีสมาชิกรหัส 1234 อยู่ ให้นำข้อมูลใน Body ไปสร้างเป็นสมาชิกใหม่ และกำหนดรหัสประจำตัวคือ 1234 ดังนั้นหลังจากนี้ หากใช้ Get มาที่ http://www.sornet.net/members/1234 จะได้ข้อมูลสมาชิกรหัส 1234 แสดงออกมาให้เห็น
  • Post ให้ใช้กับกระบวนการอะไรก็ได้ ไม่เฉพาะแต่ Create หรือ Update ข้อมูล แต่ถ้าเป็นเรื่องข้อมูล Post จะถูกใช้เพื่อ Create สร้างข้อมูลขึ้นใหม่ในกรณีที่ข้อมูลนั้นถูกกำหนดรหัสโดยระบบฝั่งเซิร์ฟเวอร์ เช่น
    • ถ้า Post มาที่ http://www.sornet.net/members จะเป็นการนำ Body ไปสร้างเป็นข้อมูลสมาชิกใหม่และกำหนดรหัสใหม่ขึ้นมา โดยระบบเป็นผู้สร้างรหัสให้อัตโนมัติ ดังนั้นหลังจาก Post แล้วถ้าสมาชิกใหม่มีรหัสเป็น 1122 ก็ย่อมสามารถดึงข้อมูลไปดูได้ด้วย Get ไปที่ http://www.sornet.net/members/1122
    • สิ่งที่แตกต่างคือ Post จะถูกนำไปออกแบบใช้งานกับกระบวนการอื่นด้วยเช่น การรีเซ็ตรหัสผ่านของสมาชิกหมายเลข 1122 อาจจะออกแบบให้เป็น Post ไปที่ http://www.sornet.net/members/1122/reset เป็นต้น
  • Patch จะแตกต่างออกไปจาก Put หรือ Post โดย Patch จะเป็นการอัพเดตข้อมูลที่มีอยู่แล้วโดยส่งข้อมูลไปให้เฉพาะฟิลด์ที่ต้องการอัพเดตเท่านั้น เช่น ถ้าในสมาชิกมีข้อมูลประมาณ 20 ฟิลด์ แต่เราต้องการอัพเดตเฉพาะฟิลด์ข้อมูลเบอร์โทรศัพท์ เราจะ Patch ไปที่ http://www.sornet.net/members/1122 โดยใน Body กำหนดเฉพาะเบอร์โทรศัพท์ เช่นนี้
{
    "phone": "0814445555"
}

ใส่ความเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *