ทรัพยากรคือสิ่งที่คุณกำลังทำงานด้วย ตัวอย่างเช่นหากคุณมี API สำหรับการเปลี่ยนหลอดไฟบางส่วนทรัพยากรก็คือหลอดไฟเอง ทรัพยากรอาจมีอยู่จริง (เช่นหลอดไฟบุคคล) หรือไม่ใช่กายภาพ (เช่นบทความบทบาทแถวในฐานข้อมูล) ทรัพยากรสามารถเป็นทรัพยากรหลัก (เช่นสมดุล) หรือได้มา (เช่นธุรกรรม) ทรัพยากรสามารถอ้างถึงเอนทิตีที่เฉพาะเจาะจง (เช่นหลอดไฟที่ห้าที่ติดตั้งในซ็อกเก็ตหลอดไฟนี้) หรือสามารถอ้างถึงบทบาทที่แมปเอนทิตีที่แตกต่างกันในเวลาที่ต่างกัน (เช่นหลอดที่ติดตั้งในปัจจุบัน หรือสามารถแมปไปยังเอนทิตีหลาย ๆ อัน (เช่นโคมไฟทั้งหมดในบ้าน)
การเป็นตัวแทนของทรัพยากรคือวิธีการที่บริการของคุณสื่อสารสถานะของทรัพยากรเช่น XML, JSON ที่แสดงสถานะของหลอดไฟ
ใน REST API จะมีการระบุทรัพยากรโดยตัวระบุแบบฟอร์มเดียวกัน (เช่น URI) ทรัพยากรเดียวสามารถมีการรับรองหลายรายการใน HTTP REST API ตามปกติคุณจะระบุการเป็นตัวแทนที่คุณต้องการใช้ในส่วนหัวเนื้อหา HTTP และยอมรับประเภท
การรับรู้คีย์หนึ่งในสถาปัตยกรรมเซิร์ฟเวอร์ลูกค้าคือคุณไม่สามารถนำทรัพยากรมาให้ลูกค้าได้และคุณไม่ควรพยายามทำให้มันเป็นเหมือนที่คุณทำ แต่ใน REST API คุณจัดการทรัพยากรจากระยะไกลโดยการโอนการรับรองทรัพยากร ลองคิดดูเช่นนี้คุณไม่ส่งหลอด FedEx เพื่อให้ลูกค้าสามารถจัดการหลอดไฟได้โดยตรง แต่บริการจะสร้างการแสดง XML / JSON / protobuf / CSV ของหลอดไฟและไคลเอนต์ส่งตัวแทนของการจัดการที่ตั้งใจไว้ จากนั้นบริการจะจัดการกับสถานะที่แท้จริงของหลอดไฟในนามของลูกค้าหรือปฏิเสธคำขอบอกว่าลูกค้าไม่ได้รับอนุญาตให้ดำเนินการกับหลอดไฟ เรื่องนี้อาจดูเหมือนชัดเจน / ผมแตก แต่สิ่งสำคัญที่ควรทราบคือเนื่องจากการแสดงไม่ใช่ทรัพยากรเอง