2016-11-01 10 views
0

私は、@RestControllerを使ってRESTfulなapiを作成しています。これは、mysqlのデバイスのリスト(add/delete/update)を維持することができますバックエンド。spring-bootのRESTサービスapiのWebフロントエンド

私は、このAPIを利用できるWebフロントエンドを作成しようとしています。これは、Spring MVC + Thymeleafがこれに適していることを発見しました。

私はMVCコントローラコードからREST APIを呼び出すことができますか?従って、例えば。

  1. /アップロード/デバイス私は、フォーム上で「送信」ヒットすると私はデバイス
  2. のリストをアップロードすることができ、フォームで私を提示するMVCエンドポイントである、MVCコントローラのバックエンドは/に掲載しますapi/upload/devicesアップロード時に合否にパラメータを設定したREST APIおよび戻りビュー

これは可能なのか、それとも悪い設計であることをしていますか?

@restcontrollerを使用している純粋なREST APIを使用している理由は、ビューの代わりにjsonレスポンス(デバイスのjsonリストなど)が必要な他のアプリケーションからコールできるようにするためです。

REST APIを呼び出す純粋な角ベースのフロントエンドを実装することも考えられますが、それはテンプレート化とサービスサイド変数の注入に好きなthymeleafを使用できないことを意味します。

歓声、

答えて

1

私は単純にその@RestController 1をエミュレートするために、別の@Controllerクラスを作成します。サービスレイヤーが適切に設計されていれば、データを取得する簡単な呼び出しになります。主な違いはビュー部分です。それはあなたがあなたの仕事をする場所です。 Restでは、オブジェクトを出力するだけで簡単です。暗黙の@ResponseBodyがシリアル化を処理します。コントローラスタイルでは、あなたが知っているようにビューを返すでしょう。それが大きな違いです。

同じアプリケーションから提供されているコントローラからRESTバックエンドへの呼び出しを行うことは冗長です。

+0

ありがとうございます!この戦略は私にとってはうまくいった。すべてのロジックをサービスレイヤーとユーティリティークラスにプッシュしました.RESTコントローラーとMVCコントローラーの両方が共通コードを呼び出せるようになりました。 – Arun

関連する問題