Я работаю над новым проектом iOS-приложения для мобильных устройств. Происходят некоторые изменения в архитектуре, и оказывается, что нам придется полагаться на собственный частный API, который будет использоваться приложением, которое мы создаем, а также другими клиентами, такими как веб-сайт.
Разрабатываемый API соответствует стилю Rest ресурсо-ориентированных операций 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
- Допустим, есть экран, где пользователь может редактировать многие из своих объектов, например, отмечая галочкой задачи в своем списке задач. должен быть способ отредактировать все эти записи задач в одном пакетном вызове API, а не один вызов API на редактирование.
- скажем, есть экран, который смешивает информацию из таблиц БД ORDER, SALESMEN и PRODUCT, я должен получить эти данные за один вызов вместо трех.
риск состоит в том, что мы можем получить самый API-интерфейс Restful, а также самое бесполезное мобильное приложение без ответа.
Дело в том, что я всего лишь новый подрядчик, и мне нужно что-то, что поможет мне сделать эти выводы, некоторые статьи из уважаемых источников или что-то в этом роде. Основные игроки, которые идут на компромисс со стилем REST для своего мобильного клиента (например, с помощью составных совокупных конечных точек API).
Или любое решение для этой общей проблемы. Благодарность!