0

REST API を公開し、バックエンドで複数の SOAP サービスと通信して調整し、REST API への応答を構築するアプリケーションを構築しています。Canonical Data Models と、それらがこれらのバックエンド SOAP サービスを疎結合するのにどのように役立つかについて読んでいます。

Rest API とバックエンド サービスの間で正規のデータ モデルを使用する必要がありますか?

現在、バックエンドの SOAP 応答は、JAXB を使用して Java オブジェクトに非整列化されています。次に、スクリプトを使用して jaxb オブジェクトを、JSON として返したい構造を表すマップにマップし、Rest API を介して単純にマップを Json に変換します。

SOAP -> jaxb Java Object -> Java Map(JSONを表す) -> Json

正規モデル用にここに別のステップを追加する必要がありますか?

SOAP -> jaxb Java Object -> SOAPまたはJSON構造を表さないCANONICAL MODEL -> Java Map(JSONを表す) -> Json

これは CDM に適していますか? それとも、この余分なレベルを追加するのは冗長ですか?

4

2 に答える 2

0

私の知る限り、標準データ モデルとは、考えられるすべてのメッセージ形式やプロトコルを表す共通データ モデルを意味します。たとえば、Mule では、MuelMessage送信したすべてのメッセージに対してMuleMessage、使用するプロトコルに関係なくメッセージを表す を作成するため、Mule は標準データ モデルです。そのため、このような正規のデータ モデルを作成することは、一般的には少し困難です。

あなたの場合は、SOAP オブジェクトがどれほど複雑かわかりません。それらが複雑すぎる場合、つまり複数のレベルがある場合、それは困難な作業になります。私の提案は、標準的なデータ モデルを使用する代わりに、SOAP メッセージを解析して対応する JSON 応答に変換する独自のカスタム トランスフォーマーを作成できない理由です (組み込みのトランスフォーマーを使用できるかどうかを確認してください)。共通のトランスフォーマー インターフェースを使用できますが、SOAP メッセージに応じて、複数の実装で解析と変換を実行します。

これが役に立ったことを願っています。

于 2015-02-20T00:31:00.247 に答える