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: แอปฝึกคณิตศาสตร์
สมมติว่าแอปฝึกคณิตศาสตร์เก็บโจทย์พีชคณิตและการส่งคำตอบของนักเรียน
ถ้าต้องการอ่านโจทย์ข้อ ไคลเอนต์อาจส่ง:
ต้องการความช่วยเหลือในการแก้โจทย์?
อัปโหลดคำถามของคุณแล้วรับคำตอบแบบทีละขั้นตอนที่ผ่านการตรวจสอบในไม่กี่วินาที
เปิด GPAI Solver →