ฉันอนุญาตให้มีการเปลี่ยนคอลเลกชันขายส่งเช่นPUT ~/people/123/shoes
กรณีที่ร่างกายเป็นตัวแทนของคอลเลกชันทั้งหมด
สิ่งนี้ใช้ได้กับคอลเลกชันย่อยของไอเท็มที่ลูกค้าต้องการตรวจสอบไอเท็มและตัดบางส่วนออกและเพิ่มรายการอื่น ๆ จากนั้นอัปเดตเซิร์ฟเวอร์ พวกเขาสามารถใส่คอลเลกชันว่างเปล่าเพื่อลบทั้งหมด
ซึ่งหมายความว่าGET ~/people/123/shoes/9
จะยังคงอยู่ในแคชแม้ว่า PUT จะลบออก แต่นั่นเป็นเพียงปัญหาการแคชและจะเป็นปัญหาหากมีบุคคลอื่นลบรองเท้า
API ข้อมูล / ระบบของฉันใช้ ETags เสมอเมื่อเทียบกับเวลาหมดอายุดังนั้นเซิร์ฟเวอร์จึงเข้าชมในแต่ละคำขอและฉันต้องการเวอร์ชัน / ส่วนหัวพร้อมกันที่ถูกต้องเพื่อเปลี่ยนข้อมูล สำหรับ API ที่เป็นแบบอ่านอย่างเดียวและจัดตำแหน่งมุมมอง / รายงานฉันจะใช้เวลาหมดอายุเพื่อลดการเข้าชมต้นทางเช่นลีดเดอร์บอร์ดใช้ได้ดีเป็นเวลา 10 นาที
สำหรับคอลเลกชันที่ใหญ่กว่ามากเช่น~/people
ฉันมักไม่ต้องการการลบหลายครั้งกรณีการใช้งานมีแนวโน้มที่จะไม่เกิดขึ้นตามธรรมชาติดังนั้น DELETE เดียวจึงทำงานได้ดี
ในอนาคตและจากประสบการณ์ในการสร้าง REST API และการแก้ไขปัญหาและข้อกำหนดเดียวกันเช่นการตรวจสอบฉันมีแนวโน้มที่จะใช้เฉพาะคำกริยา GET และ POST และออกแบบตามเหตุการณ์เช่น POST การเปลี่ยนแปลงที่อยู่แม้ว่าฉันจะสงสัยว่า จะมาพร้อมกับชุดปัญหาของตัวเอง :)
ฉันยังอนุญาตให้นักพัฒนาส่วนหน้าสร้าง API ของตนเองซึ่งใช้ API ส่วนหลังที่เข้มงวดขึ้นเนื่องจากมักจะมีเหตุผลที่ใช้ได้จริงและถูกต้องจากฝั่งไคลเอ็นต์ว่าทำไมพวกเขาจึงไม่ชอบการออกแบบ REST API แบบ "Fielding zealot" ที่เข้มงวดและเพื่อประสิทธิภาพและ เหตุผลในการแบ่งชั้นแคช