Действительно ли REST является хорошим выбором для веб-приложений GUI?

Основанные на GUI веб-приложения могли быть, полагаются на компонент графического интерфейса пользователя, платформу с сохранением информации как Калитка, или они могли создать УСПОКОИТЕЛЬНЫМ, способом не сохраняющим состояние с состоянием GUI только на клиенте.

С технической точки зрения REST похож на правильный путь, так как это усиливает полную мощность http и приводит к хорошо масштабируемым приложениям. Но это прибывает в цену. Сложные графический интерфейсы пользователя потребуют приложения JavaScript на клиенте во многих случаях. Необходимо остаться на той же странице и перезагрузить только части, если состояние должно сохраняться на клиенте. Или необходимо использовать приемы со скрытым iframes. Иногда существует псевдо ресурс как тележки для покупок на сервере, для включения УСПОКОИТЕЛЬНОГО дизайна. Необходимо поддержать промежуточное состояние многоступенчатых диалогов и так далее...

Если я озираюсь существуют очень немногие УСПОКОИТЕЛЬНЫЙ GUI webapplications. Это из-за исторических причин, или действительно ли УСПОКОИТЕЛЬНЫЙ дизайн непроизводителен в общих сценариях?

6
задан deamon 3 February 2010 в 07:14
поделиться

3 ответа

RESTFLAFLE GUI Designs очень продуктивны, ИМХО. Вы можете использовать много функциональных возможностей без дополнительной работы для поддержки угловых случаев, таких как пользователь повторной повторной информации о информации, истории браузера (назад и вперед) несколько вкладок и Windows. Если я не ошибаюсь, этот сайт использует спокойный интерфейс.

1
ответ дан 10 December 2019 в 00:38
поделиться

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

Я также заметил, что вы задали вопрос относительно настольных приложений по сравнению с веб-приложениями . Возможно, вам будет интересно узнать, что REST также является отличной архитектурой для создания настольных клиентских приложений. Я написал несколько настольных клиентов, которые получают все свои данные с REST-сервера.

0
ответ дан 10 December 2019 в 00:38
поделиться

Если я осмотрюсь, там очень мало веб-приложений с RESTful GUI. Это по историческим причинам или RESTful-дизайн непродуктивен в обычных сценариях?

Мой ответ субъективен, но, на мой взгляд, разработке RESTful мешают два основных препятствия. :

  1. Изменение - это сильно отличается от традиционного дизайна сайтов.
  2. Задача - разработать чистый серверный API RESTful и соответствующий многофункциональный, надежный клиентский интерфейс непросто

Сложные графические интерфейсы потребуют JavaScript {{ 1}} на клиенте во многих случаях.

На мой взгляд, сложный, богатый опыт работы на стороне клиента потребует некоторого углубленного JavaScript, независимо от реализации на стороне сервера.

Вы должны оставаться на той же странице и перезагружать только части,

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

RESTful-сервер с толстым клиентом:

  • хорошо масштабируется: информация о сеансе для каждого пользователя не сохраняется в дефицитной памяти сервера
  • за вычетом данных запроса / ответа по сети: не отправляются все страницы полностью, не отправляет идентификаторы сеанса или ViewState s
  • чистые повторно используемые URL: предоставляет чистый, независимый серверный API, который может поддерживать несколько UI
  • pure: строгое соблюдение спецификации HTTP (GET не вызывают побочных эффектов и т.п.)
  • клиентский опыт: более богатый, более отзывчивый с асинхронными транзакциями

Однако, как вы упомянули, толстые клиенты имеют недостатки:

  • более уязвимы для XSS-атак, URL-адреса RESTful действительно нуждаются в тщательной защите
  • сложный JavaScript может быть сложность разработки, сопровождения и отладки (использование объектно-ориентированного JavaScript может помочь в этом)
  • необходимо указать пользователю, что асинхронные запросы обрабатываются в фоновом режиме
  • требуется дополнительная логика обработки сбоев на стороне клиента
  • Фреймворки и инструменты IDE традиционно были слабее для разработки на стороне клиента, чем на стороне сервера (ситуация постепенно улучшается)
9
ответ дан 10 December 2019 в 00:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: