2013-02-22 5 views
2

Я только что прочитал об одностраничных веб-приложениях, которые предоставляют интерфейс RESTful для извлечения данных - например, в формате JSON, и которые предоставляют только одну страницу HTML, ссылающуюся на файл Javascript, ответственный за вызов интерфейс RESTful и динамическое создание веб-интерфейса пользователя в веб-браузере клиента.Приложение для одиночной страницы

Для реализации этого в Play необходимо реализовать контроллеры, чтобы они возвращали JSON вместо HTLM и реализовали некоторый CoffeScript для визуализации интерфейса пользователя на стороне клиента.

До сих пор так хорошо ... но мне интересно, имеет ли этот дизайн смысл для крупных веб-приложений, поскольку количество javascript-кода, которое будет выполняться на стороне клиента, будет увеличиваться все больше и больше.

Моя первоначальная идея состояла в том, чтобы реализовать веб-приложение с использованием механизма шаблонов Play, а затем предоставить интерфейс RESTful для мобильных приложений.

Любое предложение, идея, или ссылки на документацию, которая охватывает эту тему будет очень ценна ;-)

ответ

0

Предоставление общего REST API должно работать нормально. В настоящий момент я работаю с сервером Play 2.0 для браузера (Backbone и т. Д.) И iOS-клиентов. Клиент браузера полностью отделен от приложения Play и развертывается независимо.

Я думаю, что есть некоторые начальные накладные расходы по сравнению с подходом к шаблону игры, но наличие всего одного набора контроллеров для тестирования и т. Д. Облегчает жизнь.

Пара очков, чтобы рассмотреть следующие вопросы:

  • аутентификации клиента. Предпочтительно, чтобы вы использовали один и тот же способ для всех клиентов.
  • В какой-то момент вам может понадобиться ввести специализированный REST API для одного из клиентов, чтобы сохранить полосу пропускания и количество запросов. Например, экран для мобильной посадки является типичным кандидатом.
  • Вам необходимо документировать ваши API REST более подробно, поскольку разработчики веб-клиента не используют кодовую базу.
1

The Play for Scala book есть глава по этой теме. Они используют один вид в качестве точки входа, вот и все.

Что касается больших приложений, это актуальная проблема. Для этого вы, возможно, захотите использовать библиотеки, такие как RequireJS (у которых Play 2.1 есть встроенная поддержка). Вы также можете разделить свое приложение на подмодули для управления сложностью. На стороне клиента вы, вероятно, также должны использовать фреймворк, например AngularJS.

Что касается Play, не так много осталось сказать, это очень хорошая платформа для предоставления услуг RESTful JSON. Рекомендую посмотреть на JSON documentation, а также посмотреть ReactiveMongo.

Смежные вопросы