หลักสูตรความผิดพลาด 101
10 โมดูล
5 สัปดาห์ที่ผ่านมา

บทนำ REST API

คลิกเพื่อคัดลอก

ข้อมูลทั่วไปเกี่ยวกับ REST API และหลักการ


โมดูลแรกจบลงด้วยการที่คุณสร้างคำขอ HTTP ส่งและรับการตอบกลับ

เราจะทำเช่นนี้อีกหลายครั้งในอนาคต เราจะส่งคำขอไปยังเซิร์ฟเวอร์ของบุคคลที่สาม เราจะสร้างแอปพลิเคชันที่ยอมรับคำขอดังกล่าวและตอบกลับ เราจะสร้างตรรกะที่ซับซ้อนสำหรับการประมวลผลคำขอ

ดังนั้นจึงเป็นการดีที่จะศึกษาทุกสิ่งที่เกี่ยวข้องกับคำขอเหล่านี้อย่างถี่ถ้วนเพื่อวิเคราะห์โดยละเอียด เพื่อให้คุณไม่เพียงแค่คัดลอกคำขอที่ไหนสักแห่งแล้วทำซ้ำ แต่ควรเข้าใจว่ามันทำงานอย่างไร

นี่คือสิ่งที่เราจะทำในโมดูลที่สอง ไปกันเถอะ!

ข้อมูลทั่วไป

เริ่มจากข้อมูลทั่วไปกันก่อน

หากคุณทำการบ้านในโมดูลแรกและศึกษาเอกสารประกอบ คุณควรสังเกตเห็นตัวย่อ API อันที่จริง เอกสารประกอบ API เป็นสิ่งแรกที่นักพัฒนาควรศึกษาหากต้องการทำความเข้าใจการโต้ตอบกับบริการหรือแอปพลิเคชันบางอย่างบนเครือข่าย

เอพีไอ

API - อินเทอร์เฟซการเขียนโปรแกรมแอปพลิเคชัน นี่เป็นคำอธิบายวิธีที่ไคลเอนต์และเซิร์ฟเวอร์สามารถสื่อสารระหว่างกันได้ เราเปิดเอกสาร API และเรียนรู้วิธีรับข้อมูลที่จำเป็นจากเซิร์ฟเวอร์จากที่นั่น

เราต้องการให้ปฏิสัมพันธ์นี้เรียบง่ายและเข้าใจได้เสมอ สิ่งนี้ทำให้งานง่ายขึ้นสำหรับทั้งนักพัฒนา (ไม่จำเป็นต้องสร้างวงล้อใหม่เมื่อออกแบบบริการใหม่) และผู้ใช้ (บริการจะเรียนรู้ได้ง่ายกว่ามากหากทำงานบนหลักการเดียวกันกับบริการที่คุ้นเคยก่อนหน้านี้) และนี่คือสิ่งที่ควรค่าแก่การจดจำคำศัพท์ใหม่ - REST

พักผ่อน

REST ย่อมาจาก Representational State Transfer อาจฟังดูไม่ชัดเจน แต่พูดง่ายๆ ก็คือ REST เป็นรูปแบบการโต้ตอบ (แลกเปลี่ยนข้อมูล) ระหว่างไคลเอนต์และเซิร์ฟเวอร์

นี่ไม่ใช่กฎและข้อกำหนดที่ตายตัว REST ไม่ได้บังคับให้ใช้ภาษาโปรแกรมเฉพาะใดๆ และไม่ได้ผูกมัดกับแนวทางปฏิบัติที่เข้มงวด REST เรียกว่ารูปแบบสถาปัตยกรรมและกำหนดหลักการ 6 ประการที่สถาปัตยกรรมระบบต้องปฏิบัติตาม

ดังนั้น API ที่พัฒนาขึ้นโดยคำนึงถึงหลักการของ REST จึงเรียกว่า REST API และตัวแอปพลิเคชันเองเรียกว่า RESTful

เราจะสร้างแอปพลิเคชัน RESTful ดังกล่าว ดังนั้นจึงควรหารือเกี่ยวกับหลักการที่พวกเขาจะปฏิบัติตามทันที

หลักการสงบ

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

ความไร้สัญชาติ หลักการนี้หมายความว่าเซิร์ฟเวอร์ไม่ควร "คิดออก" การตอบสนองตามประสบการณ์ก่อนหน้านี้กับไคลเอนต์นี้ คำขอใด ๆ ถูกสร้างขึ้นในลักษณะที่มีข้อมูลที่จำเป็นทั้งหมดสำหรับการประมวลผล โดยไม่คำนึงถึงคำขอก่อนหน้านี้

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

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

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

รหัสตามความต้องการ (ไม่บังคับ) . หลักการเดียวที่ไม่บังคับ ไคลเอ็นต์สามารถขยายฟังก์ชันการทำงานได้โดยดาวน์โหลดโค้ดปฏิบัติการจากเซิร์ฟเวอร์ (เช่น สคริปต์) ในกรณีนี้ รหัสควรดำเนินการตามต้องการเท่านั้น

Was this article helpful?
ยังคงมองหาคำตอบ?