2016-12-14 2 views
0

フロントエンドとしてAngular、バックエンドとしてJava(Spring-Boot)を使用して単一ページのWebシステムを構築します。このシステムには異なる役割があり、1つの役割にユーザーを割り当てる必要があります。異なる役割は異なる操作を行うことができます。Angular(フロントエンド)+ Java(バックエンド)でサーバーを制御するデザインシステム

シンプルに保つために、「システム:スーパーユーザーと管理者」には2つの役割があります。このシステムの唯一の特徴は、name、retail_price、factory_priceの3つのプロパティを持つProductです。スーパーユーザーは製品を追加してこれらのプロパティを更新できます。管理者は名前とretail_priceを表示できますが、管理者はfactory_priceを見ることができません.Adminはretail_priceも更新できますが、Productは追加できません。

Angularでこの機能コントロールを実装するために、私はHTMLでコードをハードコーディングしています。製品ページを表示すると、ログインユーザーがスーパーユーザーに属している場合は、[追加]ボタンが表示されます。製品の詳細ページを表示すると、ログインユーザーがAdminに属している場合、factory_priceは非表示になり、名前フィールドは読み取り専用になります。

明らかに、これらのコントロールコードはすべてHTMLであり、誰もがそれを読んで、私たちのロジックを知ることができます。私はいくつかのソリューションとサーバ側でこのロジックを処理することができるガイダンスを探しています。サーバーは、ブラウザで表示する必要があり、フロントエンド(Angular)だけでサーバーからのコンテンツを表示し、上記のようなすべての制御ロジックを取り除きます。

別の課題は、さまざまな役割の異なる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を設計するのが最良だと感じています。 –

関連する問題