AsyncController
не был предназначен для асинхронного обслуживания HTTP-запросов, но для выполнения длительных процессов на стороне сервера.Создание одного запроса к службе REST может быть или не быть длительным процессом на стороне сервера.
Итак, независимо от того, решите ли вы сделать запрос REST на стороне сервера или напрямую от клиента (браузера), вам не обязательно использовать AsyncController
.Обычный Controller
может выполнить эту работу.
Способ обработки видео-запросов зависит от структуры вашего бизнес-уровня.Если есть знания о видео Vimeo для обработки на бизнес-уровне, то лучше сделать так, чтобы ваш веб-сервис вызывал сервисную сторону.В противном случае у вас будет бизнес-логика на клиенте, что может затруднить обслуживание.
Если, с другой стороны, ваши видео Vimeo являются только частью автономного UI-виджета, то безопасно обрабатывать запрос полностью на клиенте без непредвиденных последствий.
Я предполагаю, что вызов веб-службы Vimeo получает файл Flash или что-то в этом роде.Для выполнения вызовов службы Vimeo с сервера потребуется больше пропускной способности, а также больше памяти, поскольку тогда данные должны отправляться на ваш сервер.
Если вы выполняете это на стороне сервера, это происходит:
1 - Browser sends HTTP-Request to YourApplication
2 - YourApplication sends HTTP-Request to Vimeo's WebService
3 - Vimeo's WebService sends big HTTP Response with the Video data to YourApplication
4 - YourApplication sends big HTTP Response with the Video data to Browser
* If you choose to do it this way, this might be the point at which it makes sense to use an AsyncController
Если вы делаете это на стороне клиента, это происходит:
1 - Browser sends HTTP-Request to Vimeo's WebService
2 - Vimeo's WebService sends big HTTP Response with the Video data to the Browser
Похоже, что делать все на стороне клиента лучше.Но тогда возникает проблема бизнес-логики.Это можно исправить, отправив запрос ajax синхронному действию контроллера для обработки бизнес-логики и попросив браузер вернуть URL-адрес вызова службе REST.Итак:
1 - Browser sends AJAX request to YourApplication
2 - YourApplication handles business logic and sends the URL of the REST request to Browser
3 - Browser sends AJAX request to Vimeo's WebService
4 - Vimeo's WebService sends big HTTP response with the video data to the browser.
Я думаю, что это, вероятно, ваш лучший выбор.