REST API กับ HTTP Method

การออกแบบ Web API ในปัจจุบัน ส่วนใหญ่จะเป็นแบบ RESTful ที่รับส่งข้อมูลแบบ JSON ไปหมดแล้ว การออกแบบ API ให้ผู้อื่นใช้งานง่ายจึงมีความสำคัญมากขึ้น

โดยทั่วไป การ request ไปหา API จะอยู่ในรูปแบบ GET ไม่ก็ POST โดยขึ้นกับว่าจะเป็นการรับ หรือส่งข้อมูล การออกแบบ API แบบง่ายที่สุดก็คือใช้ชื่อ ในการบ่งบอกว่า API นั้นทำอะไร เช่น /getproduct หรือ /updateproduct

แต่พอเป็นการใช้งาน API เพื่อทำงานแบบ CRUD นั้น สามารถใช้ HTTP Method หรือ Verb เข้ามาเพื่อให้ API ดูชัดเจนมากขึ้นได้ ถึงจะไม่ได้เป็นกฎตายตัว แต่ถ้าเราทำตาม มันก็จะช่วยให้ผู้ใช้งานเข้าใจได้เร็วขึ้น ยิ่งถ้าเป็น public API ด้วยแล้ว ก็แทบจะไม่ต้องเขียน document อธิบายใดๆเลย

ควรใช้ HTTP Verb คู่กับ operation CRUD ดังนี้

  • GET = R(etrieve)
  • POST = C(reate)
  • PUT = U(pdate)
  • DELETE = D(elete)

หน้าตาของ API endpoint เช่น เราต้องการสร้าง API สำหรับดึงข้อมูลสินค้า ก็จะเป็นลักษณะนี้

  • GET /product/1 คือ ดึงข้อมูลสินค้าที่รหัสสินค้า = 1
  • POST /product คือ เพิ่มข้อมูลสินค้า โดยส่งข้อมูลสินค้าเข้ามาใน body
  • PUT /product/1 คือ แก้ไขข้อมูลสินค้าที่รหัส = 1 โดยใช้ข้อมูลจาก body
  • DELETE /product/1 คือ ลบข้อมูลสินค้ารหัส = 1 ออกจากระบบ

ในด้านผู้ใช้ จะเห็นว่าถ้าจะใช้งาน API นี้ รู้เพียงแค่ endpoint คือ /product ก็สามารถเดาได้เลยว่าจะจัดการข้อมูลสินค้าอย่างไร ผ่านการใช้ HTTP Verb จึงง่ายกว่าเมื่อเทียบกับ /getproductbyid /productnew /updateproduct ว่า Verb กับ Entity อยู่ตรงไหนและใช้ keyword อะไรกันแน่

สแลช (SLASH)

Advertisements