RESTful ( Representational State Transfer ) คือรูปแบบสถาปัตยกรรม ( Architectural Style ) ในการออกแบบ Web Service ที่เน้นความเรียบง่าย ประสิทธิภาพ และความสามารถในการขยายระบบ โดยจะอาศัย HTTP Protocol มาตรฐานในการรับ-ส่งข้อมูล
💡 หลักการสำคัญของ RESTful ( Constraints )
เพื่อให้ระบบเป็น RESTful อย่างแท้จริง ควรมีคุณสมบัติดังนี้
- Stateless: ทุกคำสั่งที่ส่งไปยัง Server ต้องมีข้อมูลครบถ้วนในตัวมันเอง Server จะไม่เก็บ “สถานะ” ( Session ) ของผู้ใช้ไว้
- Client-Server: แยกส่วนการทำงานระหว่างหน้าบ้าน (UI) และหลังบ้าน ( Data / Logic ) ออกจากกันชัดเจน
- Cacheable: ระบบควรระบุได้ว่าข้อมูลไหนสามารถเก็บไว้ใน Cache ได้ เพื่อลดภาระของ Server
- Uniform Interface: มีรูปแบบการเข้าถึงข้อมูลที่เหมือนกันและเป็นมาตรฐาน ( เช่นการใช้ URL )
🛠 การใช้งานผ่าน HTTP Methods
RESTful จะนำ HTTP Verbs มาใช้แทนการกระทำต่าง ๆ กับข้อมูล ( Resources ) ดังนี้
| Method | การทำงาน ( CRUD ) | คำอธิบาย |
| GET | Read | ดึงข้อมูลจาก Server ( เช่น ดูรายชื่อสินค้า ) |
| POST | Create | ส่งข้อมูลใหม่ไปสร้างบน Server ( เช่น เพิ่มสินค้าใหม่ ) |
| PUT | Update ( Replace ) | อัปเดตข้อมูลเดิมโดยแทนที่ทั้งหมดด้วยข้อมูลใหม่ |
| PATCH | Update ( Partial ) | อัปเดตข้อมูลเดิมเพียงบางส่วน |
| DELETE | Delete | ลบข้อมูลที่ระบุ |
🛣 โครงสร้างของ URL ( Endpoint )
การออกแบบ Endpoint ที่ดีควรใช้ คำนาม ( Nouns ) แทนคำกริยา และเน้นความเป็นลำดับชั้น
GET /users— ดึงรายชื่อผู้ใช้ทั้งหมดGET /users/123— ดึงข้อมูลผู้ใช้ ID 123POST /users/123/orders— สร้างรายการสั่งซื้อใหม่ให้ผู้ใช้ ID 123