ฉันกำลังทำงานในโครงการแอพ iOS ใหม่ทางมือถือ การเปลี่ยนแปลงสถาปัตยกรรมบางอย่างกำลังเกิดขึ้นและปรากฎว่าเราจะต้องพึ่งพา API ส่วนตัวที่สร้างขึ้นเองซึ่งจะถูกใช้โดยแอพที่เรากำลังสร้างและลูกค้ารายอื่นเช่นเว็บไซต์
API ที่ถูกออกแบบตามสไตล์ Rest ของการดำเนินการ URI และ CRUD ที่เน้นทรัพยากรเป็นศูนย์กลางจับคู่กับกริยา HTTP สิ่งที่ชอบ:
GET www.example.com/books
DELETE www.example.com/books/482094
POST www.example.com/users/6793
ปัญหาคือว่ารูปแบบนี้มักจะนำไปสู่ความต้องการให้ไคลเอนต์มือถือทำการร้องขอมากมายสำหรับการโหลดหน้าจอแอปเดียวหรือจัดการการกระทำ UI ของผู้ใช้คนเดียว สิ่งนี้นำไปสู่แอปที่อยู่ในโหมดโหลดเป็นเวลา 8 วินาทีจนกว่าจะมีทุกอย่างที่จำเป็น แอพที่ช้าและไม่ตอบสนอง
ไคลเอนต์มือถือมีข้อ จำกัด ที่ร้ายแรงเมื่อพูดถึงการเชื่อมต่อดังนั้นเราควรปฏิบัติตามกฎดังกล่าว:
1 หน้าจอ == 1 การเรียก API
1 บันทึก == 1 การเรียก API
มีหลายสถานการณ์ที่สิ่งนี้ทำให้คุณมีหลักสูตรการชนด้วยหลักการออกแบบ REST เช่น:
- สมมติว่าแอปของคุณออฟไลน์อยู่หนึ่งวันและคุณจำเป็นต้องซิงค์กับฐานข้อมูลแบ็กเอนด์สี่ตารางและคุณต้องการโทรศัพท์เช่น
www.example.com/sync_everything?since=2015-07-24
- สมมติว่ามีหน้าจอที่ผู้ใช้สามารถแก้ไขวัตถุของเขาได้หลายอย่างเช่นการทำเครื่องหมายในรายการสิ่งที่ต้องทำ ควรมีวิธีแก้ไขเรกคอร์ดงานทั้งหมดในการเรียก API แบทช์เดียวแทนที่จะเรียก API หนึ่งครั้งต่อการแก้ไข
- สมมติว่ามีหน้าจอที่ผสมข้อมูลจากตาราง ORDER, SALESMEN และ PRODUCT db ฉันควรรับข้อมูลนั้นในการโทรครั้งเดียวแทนที่จะเป็นสาม
ความเสี่ยงคือเราอาจท้ายด้วย Restful API ที่มีมากที่สุดและยังเป็นแอพมือถือที่ไม่ตอบสนองที่ไร้ประโยชน์มากที่สุด
สิ่งนี้คือฉันเป็นเพียงผู้รับเหมารายใหม่ที่นั่นและสิ่งที่ฉันต้องการคือสิ่งที่ช่วยฉันทำคะแนนเหล่านั้นบางบทความจากแหล่งที่น่านับถือหรือสิ่งที่ต้องการ ผู้เล่นหลัก ๆ ที่ประนีประนอมกับสไตล์ REST สำหรับลูกค้ามือถือของพวกเขา (เช่น: โดยใช้จุดสิ้นสุด API รวมแบบรวม)
หรือวิธีแก้ปัญหาสำหรับปัญหาทั่วไปนี้ ขอบคุณ!