โดยปกติแล้วฉันจะส่งกลับจำนวนระเบียนในผลลัพธ์เป็นเมตาดาต้า ฉันไม่แน่ใจว่านี่เป็นแบบฝึกหัด REST ปกติหรือไม่ แต่เป็นข้อมูลที่ไม่มากนักและแม่นยำมาก โดยปกติจะมีการแบ่งหน้าสำหรับบริการจำนวนมากมันเป็นไปไม่ได้ที่จะส่งคืนชุดผลลัพธ์ขนาดใหญ่พร้อมกัน ส่วนตัวผมรู้สึกรำคาญเมื่อมีเลขชุดผลขนาดเล็ก .. ถ้ามันเป็นที่ว่างเปล่ากลับและหนังสือเป็นรายการที่ว่างเปล่าnumber_of_records : 0
/ อาร์เรย์books : []
{
meta: {
number_of_records : 2,
records_per_page : 10,
page : 0
},
books : [
{id:1},
{id:27}
]
}
แก้ไข (ไม่กี่ปีต่อมา): คำตอบจาก Martin Wickman ดีกว่ามากนี่คือคำอธิบายสั้น ๆ ว่าทำไม
เมื่อต้องรับมือกับการให้เลขหน้าอยู่ในใจเสมอความเป็นไปได้ของเนื้อหาหรือการสั่งซื้อการเปลี่ยนแปลง เช่นคำขอแรกมา 24 ผลลัพธ์คุณส่งคืน 10 อันดับแรกหลังจากนั้นแทรก "หนังสือเล่มใหม่" และตอนนี้คุณมีผลลัพธ์ 25 รายการ แต่ด้วยคำขอดั้งเดิมจะมีการสั่งซื้อในลำดับที่ 10 เมื่อผู้ใช้คนแรกร้องขอหน้า 2 เขาจะไม่ได้รับ "หนังสือเล่มใหม่" มีวิธีจัดการกับปัญหาดังกล่าวเช่นการให้ "รหัสคำขอ" ซึ่งควรส่งด้วยการเรียก API ต่อไปนี้จากนั้นส่งคืนหน้าถัดไปจากชุดผลลัพธ์ "เก่า" ซึ่งควรเก็บไว้อย่างใดและเชื่อมโยงกับ "รหัสคำขอ" ทางเลือกคือการเพิ่มฟิลด์เช่น "รายการผลลัพธ์เปลี่ยนตั้งแต่คำขอครั้งแรก"
โดยทั่วไปหากทำได้ให้พยายามใช้ความพยายามพิเศษและหลีกเลี่ยงการแบ่งหน้า การแบ่งหน้าเป็นสถานะเพิ่มเติมซึ่งสามารถกลายพันธุ์ได้และการติดตามการเปลี่ยนแปลงดังกล่าวมีแนวโน้มที่จะเกิดข้อผิดพลาดมากยิ่งขึ้นเพราะทั้งเซิร์ฟเวอร์และไคลเอนต์ต้องจัดการกับมัน
หากคุณมีข้อมูลมากเกินไปที่จะประมวลผลพร้อมกันให้ลองส่งคืน "รายการ id" พร้อมผลลัพธ์และรายละเอียดทั้งหมดสำหรับบางส่วนของรายการนั้นและจัดเตรียมการเรียก API แบบ multi_get / get_by_id_list