Я працюю над новим проектом програми iOS, на мобільній стороні. Деякі зміни в архітектурі відбуваються, і виявляється, нам доведеться покладатися на створений на замовлення приватний API, який буде використовуватися додатком, який ми будуємо, а також іншими клієнтами, такими як веб-сайт.
Розроблений API відповідає стилю відпочинку, орієнтованому на ресурси, URI та CRUD-операціям, відображеним на HTTP-дієслова. такі речі, як:
GET www.example.com/books
DELETE www.example.com/books/482094
POST www.example.com/users/6793
Проблема полягає в тому, що цей стиль часто призводить до необхідності мобільного клієнта робити багато запитів для завантаження одного екрана програми або керування однією з дій користувача інтерфейсу користувача. Це призводить до того, що додаток перебуває в режимі завантаження протягом 8 секунд, поки у нього є все необхідне. Повільний і невідкличний додаток.
Клієнти для мобільних пристроїв мають серйозні обмеження, коли справа стосується підключення, і в ідеалі ми повинні дотримуватися такого правила:
1 екран == 1 виклик API
1 зберегти == 1 виклик API.
Існує багато ситуацій, коли це ставить вас на курс зіткнення з принципами проектування REST, наприклад:
- скажімо, ваш додаток не працює в режимі офлайн протягом дня, і вам потрібно синхронізувати чотири таблиці резервних баз даних, і вам потрібен дзвінок, як
www.example.com/sync_everything?since=2015-07-24
- Скажімо, є екран, на якому користувач може редагувати багато своїх об'єктів, наприклад, відмічаючи завдання у своєму списку todo. повинен бути спосіб редагувати всі ці записи завдань в одному виклику пакетного API, а не один виклик API за редагування.
- скажімо, є екран, який змішує інформацію з таблиць ORDER, SALESMEN та PRODUCT, я повинен отримати ці дані за один виклик замість трьох.
ризик полягає в тому, що ми можемо опинитися з самим API відпочинку, а також з найкориснішим безвідповідальним мобільним додатком.
Справа в тому, що я є лише новим підрядником, і мені потрібно щось, що мені допомагає робити ці моменти, деякі статті з добре шанованих джерел чи щось подібне. Основні гравці, що йдуть на компроміс зі стилем REST для свого мобільного клієнта (наприклад, за допомогою складених сукупних кінцевих точок API).
Або будь-яке рішення цієї загальної проблеми. Спасибі!