2016-12-14 1 views
0

Angular를 프런트 엔드로, Java (Spring-Boot)를 백엔드로 사용하여 단일 페이지 웹 시스템을 구축합니다. 이 시스템은 다른 역할을 가지며 사용자는 하나의 역할에 할당되어야합니다. 다른 역할은 다른 작업을 수행 할 수 있습니다.Angular (프론트 엔드) + Java (백엔드)로 서버 제어 UI 디스플레이가있는 디자인 시스템

간단히 말해서 System : Super User and Admin에는 두 가지 역할이 있습니다. 이 시스템의 유일한 기능은 name, retail_price, factory_price의 세 가지 속성을 가진 Product입니다. 수퍼 유저는 제품을 추가하고 이러한 속성을 업데이트 할 수 있습니다. 관리자는 name 및 retail_price를 볼 수 있지만 관리자는 factory_price를 볼 수 없습니다 .Admin은 retail_price를 업데이트 할 수도 있지만 Product를 추가 할 수 없습니다.

Angular에서이 기능 컨트롤을 구현하기 위해 HTML 코드를 하드 코딩하고 있습니다. 제품 페이지를 표시 할 때 로그인 사용자가 수퍼 유저에 속하면 추가 버튼이 표시됩니다. 제품 세부 정보 페이지를 표시 할 때 로그인 사용자가 Admin에 속하면 factory_price가 숨겨지고 이름 필드는 읽기 전용이됩니다.

분명히, 모든 컨트롤 코드가 HTML이기 때문에 모든 사람이 읽을 수 있고 우리의 논리를 알기 때문에 그렇게하는 것은 좋지 않습니다. 서버 측과 서버에서이 로직을 처리 할 수있는 몇 가지 솔루션과 지침을 찾고 있는데, 서버가 표시해야 할 프런트 엔드 (각도)는 서버에서 컨텐츠를 보여주고 위에서 언급 한 모든 컨트롤 로직을 제거합니다.

다른 도전 과제는 다른 역할에 따라 다른 HTML을 처리하는 것입니다. 예를 들어 제품 세부 정보 페이지의 경우 서버 측면에서 HTML 컨텐트를 다른 역할에 맞게 준비하고 로그인 사용자가 제품 세부 정보 페이지로 이동하면 편안한 통화를 보내고 백엔드에서 HTML 컨텐트를 가져와 보여줍니다. 그러면 클라이언트 측은 어떤 논리도 가질 필요가 없으며 단지 보여줄 필요가 없습니다. 다른 역할을 위해 다른 HTML 템플릿을 사용해야합니까?

답변

0

사용중인 프로토콜은 상태 저장이없는 HTTP입니다. 백엔드 용으로 Java (Spring, JSP Servlet)의 어떤 기술을 언급하지 않았습니다. 다른 사용자가 있고 권한이나 역할이 다르면 백엔드 내부에서 세션을 유지해야합니다. 로그인 한 사용자를 얻을 수 있으면 해당 사용자의 역할을 추출 할 수 있습니다. 이러한 속성에 따라 데이터베이스를 쿼리하고 클라이언트 측에 데이터를 제공 할 수 있습니다.

+0

로그인 세션에서 로그인 사용자 역할을 얻을 수 있습니다. 실제로 도전은 역할 정보를 얻은 후에 시스템을 설계하는 방법입니다. 나는 클라이언트 측면에서 각도를 사용하고 클라이언트 측에서 모든 제어 논리를 제거하고자합니다. 그래서 서버 측은 모든 HTML 컨텐츠를 준비하고 클라이언트에게 보내야합니다. 고객은 콘텐츠를 보여줘야합니다. 내가 백엔드에서 일부 HTML 컨텐츠를 준비하고 다른 역할에 다른 템플릿을 사용하여 클라이언트로 리턴해야하는 것처럼 보입니다. – lorcel

+0

각도를 사용할 때 클라이언트 끝 스크립트에서보기 템플리트를 설정해야합니다. 시나리오에서 기술과 같은 JSP를 통해 수행되는 서버 측 html 처리가 필요합니다. 그러나 REST API로 클라이언트를 설계 할 때 로직 처리가 낮아질 수 있습니다. JSON 객체를 서버 측에서 가져오고 객체의 매개 변수에 따라 클라이언트 측에서 템플릿을 선택할 수 있습니다. –

+0

Angular 2가 OOP에 더 가까워서 REST API를 설계하는 것이 가장 좋습니다. –

관련 문제