Дизайн REST API стандартное веб-приложение MVC

#model-view-controller #web-applications #rest #jersey

#model-view-controller #веб-приложения #rest #джерси

Вопрос:

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

Пользователям необходимо зарегистрироваться / войти в систему, чтобы получить сгенерированный API ключ, который они затем будут использовать при доступе к нашему API и т. Д. По сути, здесь будет содержаться все, что связано с предоставлением API или доступом к нему через GETS, POSTS и т. Д.

Таким образом, вышеприведенное служит одним веб-приложением.

Однако мне нужно разработать компонент администратора для этого сайта, по сути, предоставляя администраторам возможность добавлять новых пользователей, ограничивать количество запросов, которые пользователи могут отправлять в наш API, ограничивать пользователей, если они превышают выделенные запросы и т. Д. Теперь я думаю об этом компоненте, должен ли я просто разработать отдельное веб-приложение Admin со стандартной платформой MVC (например, Spring MVC) и рассматривать это отдельно от веб-приложения REST API?

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

Я намерен сделать следующее:

  1. Веб-приложение REST API подключается к постоянному хранилищу nosql. Клиенты могут войти в систему, чтобы просмотреть там информацию о пользователе, например, панель мониторинга, и историю запросов для служб API, которые они использовали и т. Д

  2. Отдельное веб-приложение для администрирования с использованием MVC для обработки всех аспектов администрирования.

Имейте в виду, что вы оба совместно используете хранилище Mysql для доступа к учетной информации пользователя, отдельно от второго хранилища, в котором фактически будет храниться информация о наборе данных для URL-адресов.

Пожалуйста, сообщите.

Ответ №1:

Почему бы не использовать Admin в качестве клиентского API? Вы можете легко написать сценарий командной строки, и вы быстро запустите сервер администрирования.

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

Это мой предпочтительный маршрут администратора.