REST API เป็นวิธีที่ใช้กันทั่วไปในการออกแบบ web API โดยยึดตาม ทรัพยากร เช่น ผู้ใช้ โจทย์ หรือคำสั่งซื้อ แต่ละทรัพยากรจะมี URL ของตัวเอง และเมธอด HTTP เช่น GET, POST, PATCH และ DELETE จะบอกเซิร์ฟเวอร์ว่าฝั่งไคลเอนต์ต้องการทำอะไร

REST ย่อมาจาก Representational State Transfer ในทางปฏิบัติ ไคลเอนต์จะส่ง HTTP request เซิร์ฟเวอร์จะส่ง representation ของทรัพยากรกลับมา และแต่ละ request ควรเข้าใจได้ด้วยตัวเอง หลาย REST API ส่งข้อมูลกลับมาเป็น JSON แต่การใช้ JSON อย่างเดียวไม่ได้ทำให้ API เป็น RESTful

ความหมายของ REST API: คิดในรูปของทรัพยากร

วิธีที่เร็วที่สุดในการเข้าใจ REST คือให้คิดเป็นคำนาม ไม่ใช่คำกริยา

ถ้าระบบของคุณมีโจทย์ นักเรียน และการส่งคำตอบ สิ่งเหล่านี้สามารถเป็นทรัพยากรได้ API ที่ออกแบบโดยยึดทรัพยากรมักใช้ URL เช่น /api/problems/42 หรือ /api/attempts/9001

จากนั้นเมธอด HTTP จะบอกว่ากำลังเกิดการทำงานแบบไหน:

  • GET ใช้อ่านทรัพยากร
  • POST ใช้สร้างทรัพยากรใหม่
  • PUT ใช้แทนที่ทรัพยากร
  • PATCH ใช้อัปเดตบางส่วนของทรัพยากร
  • DELETE ใช้ลบทรัพยากร

การแยกหน้าที่แบบนี้ทำให้ REST อ่านและไล่ดูได้ง่าย URL บอกว่าเรากำลังทำงานกับ อะไร ส่วนเมธอดบอกว่า ต้องการทำอะไร

คำขอของ REST API ทำงานอย่างไร

ในลำดับการทำงานทั่วไป เบราว์เซอร์ แอปมือถือ หรืออีกบริการหนึ่งจะส่ง request ไปยังเซิร์ฟเวอร์ request นั้นประกอบด้วย URL เมธอด HTTP header ที่อาจมีหรือไม่มีก็ได้ และบางครั้งก็มี body

เซิร์ฟเวอร์จะอ่าน request ทำงานตามที่ขอ แล้วส่ง response กลับมา response นั้นมักมี status code เช่น 200 OK, 201 Created หรือ 404 Not Found พร้อมข้อมูลที่อธิบายผลลัพธ์

เงื่อนไขสำคัญอย่างหนึ่งคือ statelessness ใน REST แต่ละ request ควรมีบริบทที่จำเป็นสำหรับ request นั้นอยู่ในตัวเอง นี่ไม่ได้แปลว่าเซิร์ฟเวอร์จะไม่เก็บข้อมูลเลย แต่หมายความว่าเซิร์ฟเวอร์ไม่ควรต้องพึ่งสถานะการสนทนาที่ซ่อนอยู่จาก request ก่อนหน้าเพื่อจะเข้าใจ request ปัจจุบัน

ตัวอย่าง REST API: แอปฝึกคณิตศาสตร์

สมมติว่าแอปฝึกคณิตศาสตร์เก็บโจทย์พีชคณิตและการส่งคำตอบของนักเรียน

ถ้าต้องการอ่านโจทย์ข้อ 4242 ไคลเอนต์อาจส่ง:

ต้องการความช่วยเหลือในการแก้โจทย์?

อัปโหลดคำถามของคุณแล้วรับคำตอบแบบทีละขั้นตอนที่ผ่านการตรวจสอบในไม่กี่วินาที

เปิด GPAI Solver →