LINUX.ORG.RU

Долгие запросы в REST API для мобильников

 ,


0

3

Думаю, уже сложились какие-то бест практики по реализации сабжа. Хотелось бы узнать кто как поступает в подобной ситуации.

Т.е. суть проблемы: если запрос выполняется относительно долго (дольше секунды), то есть риск, что мобильное приложение не дождётся ответа, особенно при плохой связи.

Первое что приходит в голову: POST запрос на создание задачи, который только толкает её асинхронное выполнение. Затем пингование статуса её успешности.

Вот я и хотел уточнить, может есть какие-то иные, общепринятые решения? Или проблема надумана?

У меня опыт проектирования API для мобилок не велик, а разработчик мобильных приложений ничего вразумительного сказать не может, наверное сам не сталкивался с подобным.

★★

Последнее исправление: Hater (всего исправлений: 1)

Такое наблюдаю и для веб приложений по мобильному интернету: запрос идет гораздо дольше, чем пропихивается ответ. Выглядит примерно как спутниковый интернет. Походу это реалии...

При таком раскладе оптимальнее будет скачивание данных на клиент и обработка их как-бы в автономном режиме. Это один из вариантов. Проблема основная в синхронизации локального хранилища и засвечиваемые сенситивные данные типа айдишников, а так-же перегруженность данными клиентской части.

anonymous
()

Пуши же.

anonymous
()

было бы интересно сравнить отзывчивость мобильных приложений на каком нибудь водафоне...

anonymous
()

так как мобильную платформу ты не назвал, я предложу тебе посмотреть в сторону robospice

aol ★★★★★
()

А браузер не сообщает о отмене запроса, при разрыве соединения? Можно следить и делать новый запрос если что.

nuke666
()
25 мая 2015 г.

Поллить статус запроса не нужно. Вернее, для этого не нужно делать отдельный метод в api. Дай каждому запросу uuid. Затем мобильный клиент повторяет запросы с данным uuid, пока не получит ответ < 400. Если задача с таким uuid не выполнена, начни выполнение, иначе просто возвращай посчитанный результат, сохраненный в базе, для данного uuid.882

anonymous
()

Наблюдалось такое: запрос на прием (GET) идет гораздо быстрее чем на отправку (POST) - это характерно для местечковых (и вероятно остальных) мобильных сетей.

Скорее всего канал отправки физически расположен где-то совсем не там, где приём и/или оптимизирован только на прием, но не отдачу т.е. POST

В общем такое характерно для мобильных сетей.

Готовых решений это проблемы нет. Размеры, минимизация запросов, (почти) автономный клиент

Не совсем бесполезная статья:

http://habrahabr.ru/post/242429/

swwwfactory ★★
()
Последнее исправление: swwwfactory (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.