バックエンドシステムの実行にJavaEEを使用していますが、Webサービスの作成に関してJavaEEを適切に階層化する方法について質問があります。
私は、DDDの原則に従ってアプリケーションをほぼ整理しています。つまり、ドメインレイヤー、リポジトリレイヤー、およびサービスレイヤーがあります。したがって、サービス層には@Statelessの注釈が付けられ、それらは私のEJBです。
今、私は夢中になって、JAX-RSフレームワークのより多くのアノテーションでこのサービスクラスにアノテーションを付けることができます...しかし、これがいくつかの理由で正しいかどうかはわかりません:
- これでレイヤーを少し混ぜてみませんか?
- 次に、Webサービスをバージョン管理するにはどうすればよいですか?今日Webサービスを作成し、明日はそれが本当に悪いことがわかったとしましょう。しかし、夜中に誰かがそれを使用するアプリケーションを作成し、それをゴミ箱に捨てると、アプリケーションは使用できなくなります。私が欲しいのは、www.myurl.com / api / v1 / customersにあるWebサービスと、www.myurl.com / api / v2/a_new_customers_webserviceにある新しいWebサービスです。
それが私が何らかの形で望んでいることです。
他の短所もあるかもしれませんか?
では、解決策は何でしょうか?JAX-RSアノテーションでアノテーションを付ける別のクラスのセットを作成し、メソッドがサービスレイヤーのEJBのメソッドを内部的に使用できると言った場合、正しいですか?
別のWebサービスバージョンがある場合は、他のURLとロジックを使用する別のクラスのセットを作成できます。それとも私はすべて間違っていますか?これをどのように整理しますか?