Для снабжения предисловием я плохо знаком с веб-разработкой. Я смотрю на создание базового набора УСПОКОИТЕЛЬНЫХ веб-сервисов вокруг ценной своего рода библиотеки документа (начальные способности CRUD). При этом я теоретически создаю совершенно допускающий повторное использование и масштабируемый бэкенд, который будет использоваться непредвиденными приложениями в будущем.
Мой вопрос центрируется вокруг лучшей практики для того, чтобы сделать это. Мое начальное требование имеет меня также создание уникального фронтэнда. Я сделал бы фронтэнд и бэкэнд абсолютно отдельными проектами улучшить возможность многократного использования. Это увеличилось бы наверху.
Смотря на использование GWT, Restlet и Java технологический стек EE, если это влияет на установку вообще.
Наиболее важным является создание чистого Java API - независимого от REST, RMI или любого другого протокола, который вы хотите использовать. Из чистого Java API вы можете поддерживать любой метод доступа.
Если у вас нет варианта использования этих других методов доступа, не создавайте их сейчас. Вы можете построить его, когда вам это нужно.
Самый простой интерфейс для первоначального добавления - это веб-интерфейс, в котором ваше веб-приложение работает в той же JVM, что и ваш основной API. Я бы сделал это, если это сработает для вашего варианта использования. Создание отдельного консольного приложения, которое обращается к вашему основному API через протокол REST (или какой-то другой), требует гораздо больше усилий ..
Вы можете рассмотреть возможность использования GWT-RPC вместо REST, если вы знаете, что собираетесь использовать GWT для внешнего интерфейса. Подробное обсуждение здесь .
Однако, если вы думаете, что в конечном итоге вы захотите раскрыть свои данные через REST API или использовать другую технологию во внешнем интерфейсе, REST может быть лучшим выбором.
Также может оказаться полезным проект gwt-rest .
Мы с коллегой написали систему GWT, используя отдельные проекты для внешнего и внутреннего интерфейса. Было полезно четко понимать, где выполняется код. Но я не уверен, что стал бы беспокоиться о разделении вещей в будущей системе.
Кроме того, учитывая, что вы новичок в веб-разработке, я не думаю, что вам следует ожидать создания полностью повторно используемой серверной части. По ходу дела вы многому научитесь. Я думаю, что гибкие программисты порекомендовали бы итеративный подход: (а) заставить работать небольшой аспект, а затем (б) реорганизовать его, чтобы сделать его красивым.
Мартин Фаулер не так давно написал очень хорошую статью об основах REST: Richardson Maturity Model. Нашел ее очень полезной для понимания принципов REST.
Если вы хотите использовать серверные службы на основе REST, вам следует использовать проект RestyGWT , который позволяет вам использовать GWT -RPC стиль программирования для доступа к вашим сервисам на основе JSON.
Преимущество использования сервисов JSON на основе REST по сравнению с традиционными сервисами GWT-RPC заключается в том, что эти сервисы затем могут использоваться другими клиентами или даже в гибридных приложениях.