หมายความว่าคุณเปิดใช้งานวัตถุที่สามารถเข้าถึงได้ด้วยวิธีการบางอย่าง ในตัวอย่างของคุณคุณสามารถให้ผู้ใช้สร้างอ่านอัปเดตหรือลบวัตถุ (มักจะย่อไปถึง CRUD) โดยใช้โปรโตคอล HTTP ผ่านวิธีที่กำหนดไว้ล่วงหน้าเพื่อโต้ตอบกับวัตถุของคุณ ( API )
API นั้นสามารถปฏิบัติตามชุดของกฎ - เช่นRESTful APIs ใช้คำกริยา HTTPเพื่อดำเนินการบางอย่างกับวัตถุและพวกเขาปฏิบัติตามหลักการบางอย่างที่บอกว่าควรระบุ / แสดงทรัพยากรอย่างไรและควรจัดการอย่างไรผ่านการเป็นตัวแทนเหล่านั้น
ในบริบทของเว็บแอปพลิเคชันสมมติว่าคุณมีบล็อกโพสต์ที่เก็บไว้ในฐานข้อมูลของคุณ คุณต้องการให้ผู้ใช้แอปพลิเคชันของคุณสามารถทำอะไรกับโพสต์เหล่านั้น พวกเขาไม่จำเป็นต้องใช้เว็บไซต์ของคุณแต่อาจใช้แอปพลิเคชันของตนเองที่จะเชื่อมต่อกับแอปพลิเคชันของคุณ (เช่นโปรแกรมอ่านบล็อก)
ในฐานะเจ้าของแอปพลิเคชันของคุณคุณสามารถกำหนดอินเทอร์เฟซที่แอปพลิเคชันของคุณสามารถเข้าถึงได้ ตัวอย่างเช่นคุณอาจต้องการเพิ่มตัวเลือกสำหรับผู้ใช้บางคนในการอ่านหรือเขียนบทความในบล็อก อินเทอร์เฟซอาจมีลักษณะเช่นนี้ (สำหรับตัวอย่างของ API ที่ซับซ้อนยิ่งขึ้นดูนิยาม API ของ Twitter ):
- หาก
GET /posts/{number} HTTP/1.1
ได้รับการร้องขอจากเว็บแอปพลิเคชันของคุณคุณจะต้องแสดง ID ของโพสต์{number}
ในรูปแบบที่กำหนดไว้ล่วงหน้า
โปรดทราบว่าคุณไม่ได้ให้วัตถุฐานข้อมูลจริงหรือวัตถุแอปพลิเคชันของคุณ คุณกำลังให้การเป็นตัวแทนของวัตถุของคุณ
- หาก a
POST /posts HTTP/1.1
ด้วย a title={text1}&body={text2}
ถูกโพสต์ลงในเว็บแอปพลิเคชันของคุณคุณจะสร้างวัตถุโพสต์ใหม่{text1}
ที่จะมี{text2}
เนื้อหาของมันและจะคืนค่ารหัสของโพสต์ที่สร้างขึ้นใหม่
อีกครั้งคุณจะอนุญาตให้ผู้ใช้จัดการการเป็นตัวแทนของวัตถุของคุณ ผู้ใช้ไม่จำเป็นต้องทราบว่าวัตถุของคุณมีลักษณะอย่างไร (ซึ่งแยกออกจากส่วนต่อประสานจากผู้ใช้)
การเปิดเผยวัตถุหมายถึงการให้อินเทอร์เฟซผู้ใช้ในการเข้าถึงและจัดการวัตถุของคุณ หากอินเทอร์เฟซนั้นตรงตามเงื่อนไขที่กำหนดไว้ล่วงหน้าเพิ่มเติมบางประการเกี่ยวกับการเป็นตัวแทนของวัตถุและสถานะของแอปพลิเคชันที่ตีแผ่วัตถุของมันแสดงว่าอินเตอร์เฟสนั้นเป็น REST (หรือ RESTful) API