2017-05-23 5 views
1

私はRESTマイクロサービスとそのためのクライアントライブラリを作成しています。両方とも、同じ言語(この場合はC#)を使用します。MicroserviceとClientライブラリプロジェクトの間でモデルを共有するのは良い方法ですか?

これらのプロジェクト間でレスポンス/リクエストモデルを共有することをお勧めしますか?または、私のクライアントプロジェクトは独立していて、独自の(そして実際は同じ)モデルを持つ必要がありますか?

答えて

2

レスポンス/リクエストモデルを共有することをお勧めします... RESTマイクロサービスとクライアントライブラリ?

はい、これは良い方法です。要求/応答モデルはサービス定義の一部であり、サービスとそのコンシューマの間で共有されるべきいくつかのものの1つです。サービスと消費者の間の垂直結合は避けられないものです。ただし、サービス間でモデルを共有する場合は注意が必要です。

今私は、次のについて混乱しています:別のmicroserviceは 私はあなたが何を意味するかわからないんだけど、そのクライアントライブラリ

を使用する場合 - サービスは、クライアントライブラリを使用しません。彼らはなど、セキュリティ、監視、などの横断的関心事を表現するモデルがある場合を除き

理想的には、サービス間のモデルは共有があってはならない

+0

私は次のことについて混乱しています:別のマイクロサービスがそのクライアントライブラリを使用すると、モデルも自動的に使用され始めます - >モデルを共有する... – Set

0

それはo.k.だときのケースがあるかもしれませんそれらのモデルを共有する。一般的に私はそれらを別々にしておきます。クライアント上のモデルは、データがどこから来ているか、モデル(サービス側)がどのくらいの頻度で変化し、その変化が直接影響を与えるかを心配する必要はありません。 2つの側面を切り離すと、ビルド/デプロイサイクルがより安定し、サービスモデルが変更されたときなどにクライアントを再構築する必要がなくなります。また、クライアントモデルのさまざまな部分が、異なるマイクロサービスからデータを取得している可能性があります。私が推測するあなたの全体的なモデルの複雑さのすべての問題。

関連する問題