2014-01-21 2 views
2

Мы развиваем социальную сеть. Сначала мы сосредоточились на мобильных приложениях, и поэтому мы разработали собственный API (REST), используя jboss в качестве сервера приложений, и все в порядке.Разработка веб-сайта поверх API RESTFul

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

Мой вопрос: какой подход следует придерживаться?

  1. сторона клиента вызовы (с использованием AJAX)
  2. серверных вызовов (с использованием, например, PHP, Python), чтобы динамически генерировать HTML страницу

Есть ли у вас какой-либо предложения?

Спасибо, Andrea

+0

Полностью зависит от того, чего вы хотите достичь. Хорошие примеры веб-сайтов, использующих вызовы API на стороне клиента (сами по себе), - это PivotalTracker и Trello - вызовы на стороне сервера могут немного замедлить загрузку вашей страницы ... –

ответ

1

Мне нравится смешанный подход.

Прямые клиентские вызовы на ваш уровень REST будут иметь проблемы с аутентификацией & Авторизация.

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

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

Иногда действие UI требует, чтобы вы манипулировали структурой данных или несколькими вызовами REST для создания результирующего представления. Прямое взаимно однозначное отображение действия пользовательского интерфейса для бэкэнд-вызовов REST может оказаться невозможным. Там также этот фасад помогает сделать API более дружественным к пользовательскому интерфейсу.

И наконец - для некоторых статических/кэшируемых HTML-фрагментов ваш сервер может генерировать представление с уровня REST и кэшировать его для более быстрого обслуживания.

Таким образом, в итоге

Используйте Node.js или playframework рода на основе AJAX UI для создания слоя пользовательского интерфейса.

Но использовать Facade, который организует, объединяет, преобразует, аутентифицирует, разрешает вызовы пользовательского интерфейса перед ударом по слою REST - чтобы упростить интерфейс пользователя.

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

  • Нет связанных вопросов^_^