Я создаю веб-систему с одной страницей, используя Angular как front end и Java (Spring-Boot) в качестве backend. Эта система имеет разные роли, и пользователю необходимо назначить одну роль. Различная роль может выполнять разные операции.система проектирования с контролируемым сервером дисплеем пользовательского интерфейса в угловом (front-end) + Java (Back-end)
Предположим, что это просто: в системе есть 2 роли: суперпользователь и администратор. Единственной особенностью этой системы является Продукт, который имеет 3 свойства: name, retail_price, factory_price. Суперпользователь может добавить продукт и обновить эти свойства. Администратор может просматривать имя и retail_price, но Admin не может видеть factory_price.Admin также может обновить retail_price, но не может добавить Product.
Чтобы реализовать эту функцию в Angular, прямо сейчас, я жестко кодирую код в HTML. При показе страницы «Продукты» кнопка «Добавить» будет отображаться, если пользователь входа в систему принадлежит Суперпользователю. При показе страницы сведений о товаре factory_price будет скрыта, а поле имени будет только для чтения, если пользователь входа в Администратор.
Очевидно, что это нехороший способ сделать это, потому что весь этот управляющий код находится в HTML, каждый может прочитать его и узнать нашу логику. Я ищу какое-то решение и руководство, которые могут обрабатывать эту логику на стороне сервера, а сервер просто возвращает все, что нужно браузеру, чтобы показать, а передний конец (угловой) просто показывает содержимое с сервера и избавляется от всей этой логики управления, как упомянуто выше.
Другая проблема заключается в том, как обрабатывать разные HTML-версии для различной роли. например, на странице «Сведения о продукте», я хочу подготовить HTML-контент для разной роли на стороне сервера, и как только пользователь входа перейдет на страницу «Сведения о продукте», угловые просто отправят Restful call и получат содержимое HTML из бэкэнд и покажут его. Тогда стороне клиента не нужно иметь какую-либо логику и просто показывать ее. Должен ли я использовать другой шаблон HTML для разной роли?
Я могу получить роль для пользователя входа из сеанса входа в систему. На самом деле задача состоит в том, как создать систему после получения информации о роли. Я использую угловые на стороне клиента и хочу избавиться от любой логики управления с клиентской стороны. Поэтому серверная сторона должна подготовить все содержимое HTML и отправить клиенту. Клиенту просто нужно показать контент. Похоже, мне нужно подготовить некоторый HTML-контент в бэкэнд и использовать другой шаблон для другой роли, а затем вернуться к клиенту. – lorcel
При использовании углового вам нужно установить шаблоны представлений в сценарии конца клиента. В вашем сценарии вам нужна обработка серверных файлов html через JSP-технологию. Но при его разработке с использованием клиентской части REST API обработка логики может быть низкой. Я предлагаю вам вытащить объекты JSON с серверов, и в соответствии с параметрами этого объекта вы можете выбрать шаблоны на стороне клиента. –
Для меня, поскольку Angular 2 больше подходит для OOP, я считаю, что лучше всего разрабатывать API REST. –