2010-03-28 2 views
5

К предисловию Я новичок в веб-разработке. Я рассматриваю создание основного набора веб-сервисов RESTful вокруг ценной библиотеки документов (исходные способности CRUD). При этом я теоретически создаю совершенно повторно используемый и масштабируемый сервер, который будет использоваться непредвиденными приложениями в будущем.Лучшая практика для создания веб-служб

Мой вопрос сосредотачивается вокруг лучшей практики для этого. В моем первоначальном требовании я также создал уникальный интерфейс. Могу ли я сделать переднюю и заднюю части полностью отдельными проектами, чтобы улучшить повторное использование. Это увеличило бы накладные расходы.

Глядя на использование стека технологий GWT, Restlet и Java EE, если это вообще влияет на настройку.

ответ

2

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

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

Самый простой интерфейс для добавления - это веб-интерфейс, где ваше веб-приложение работает в одном JVM в качестве основного API. Я бы сделал это, если это работает для вашего случая использования. Создание отдельного консольного приложения, которое обращается к вашему основному API через протокол REST (или что-то другое), - это намного больше работы.

+0

Вы говорите о слое Java, который фактически взаимодействует с базой данных правильно? – Holograham

+0

Исправить.Взаимодействует с базой данных и выполняет вашу бизнес-логику, логику проверки и т. Д. –

+0

Этот ответ является хорошим. Единственное, что я хотел бы добавить, это рассмотреть ваши проблемы с развертыванием/реализацией - вам нравится, когда ваш уровень представления работает в одной JVM как ваш бизнес/уровень данных? Или, например, ваш уровень данных должен сидеть за брандмауэром? Если это не важно для вас, обязательно сосредоточьтесь на разработке хорошего API и оставите экзотические вещи на потом. –

1

Мартин Фаулер написал очень приятную статью об основах REST: Richardson Maturity Model. Было очень полезно понять принципы REST.

+0

спасибо читает ... хотя это означает, что я полностью нарушил вопрос? – Holograham

+0

ah ok: P это была определенно проницательная статья. – Holograham

0

Возможно, вам захочется использовать GWT-RPC вместо REST, если вы знаете, что собираетесь использовать GWT для интерфейса. Другие обсуждения here.

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

Проект gwt-rest также может быть полезен.

+0

спасибо, я рассмотрел оба, и REST было окончательным решением, основанным на требованиях повторного использования. – Holograham

0

Мы с коллегой создали систему GWT, используя отдельные проекты для переднего и заднего концов. Было полезно четко указать, где выполняется код. Но я не уверен, что буду беспокоиться о разделении вещей в будущей системе.

Кроме того, учитывая, что вы новичок в разработке веб-сайтов, я не думаю, что вы должны ожидать, что сможете создать совершенно повторно используемый бэкэнд. Вы узнаете много вещей, когда идете. Я думаю, что гибкие кодеры рекомендуют итеративный подход: (а) получения небольшого аспекта работы, а затем (б) рефакторинг его, чтобы сделать его красивым.

1

Если вы хотите использовать серверные службы на основе REST, вы должны использовать проект RestyGWT, который позволяет вам использовать стиль программирования GWT-RPC для доступа к вашим услугам, основанным на JSON.

Хорошая вещь об использовании служб JSON на основе REST по сравнению с традиционными службами GWT-RPC заключается в том, что эти службы могут затем использоваться другими клиентами или даже в mashups более легко.

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