他のインターフェイスやマイクロサービスによってトリガされるすべての通知(電子メール、SMSなど)の実行を担当するマイクロサービスを作成しています。これは、すべての通知ロジックと処理を集中化するためです。通知アクションは、残りのWebサービスURLを呼び出すことによってトリガーされます。RESTを使用した通知のジレンマデザイン
これが私のジレンマです。リクエストの種類ごとに1つのURLを作成するのか、すべてのURLを1つ作成するのですか?
OPTION1
@Path("{sourceId}/registationEmail")
@Path("{sourceId}/forgotPasswordEmail")
@Path("{sourceId}/productionTicketEmail")
@Path("{sourceId}/registationSms")
@Path("{sourceId}/forgotPasswordSms")
@Path("{sourceId}/productionTicketSms")
または
OPTION 2
@Path("{sourceId}/email")
@Path("{sourceId}/sms")
は、ここでの問題は、その通知のすべてのタイプがの異なるセットを持っているだろう、我々は、入力として@BeanParamを使用しているあります入力値。それがオプション2に向けて決定する主な問題ですか、それともREST構成で回避する方法がありますか?
問題は、電子メールコンテンツを構築する処理ロジックがこのNotifications Webサービスによって行われるため、構築されたメッセージ本文を入力としてこのサービスに送信することができず、メッセージ本体を構築するために必要なパラメータのみを返します。 –
だから何が問題なの?ボディプロパティを持つ代わりに、いくつかの小さな(?)は、それぞれの電子メール/ SMSの種類ごとに異なる値を持つ異なるものです。すべての電子メールが類似のパラメータ(実際の値ではなくタイプ/名前)を必要とする限り、汎用モデル –
を持つ単一のエンドポイントを介して配信される可能性があります。したがって、同じBeanParam入力を再利用することができます。 –