2016-07-27 26 views
0

Web APIインターフェイスを備えたWindowsサービスがあります。私はこのサービスを使って、あるシステムから別のシステムにデータをアップロードします。別のWeb APIからWeb APIを呼び出す

私の問題は、データをアップロードする必要があるもう1つのシステムがWeb APIサービスであり、別のWeb API呼び出しを行うためにWeb API呼び出しを行うことをお勧めしますか内部。おそらく、Windowsサービスを使用せずに、そのWeb APIシステムに直接データをアップロードすることができます。

このWindowsサービスは、アップロードするデータを持つプログラムがデータをアップロードする場所を知る必要がないために存在します。 Windowsサービスでは、Web APIをストアドプロシージャに変更して、構成によってデータをアップロードすることができます。私はデカップルシステムを作りようとしています。注:ストアード・プロシージャーは、データベースがWeb APIシステムで使用した別のデータベースにデータをアップロードします。

しかし、WindowsサービスがAPIインターフェイスを備えた他のシステムと同じAPIインターフェイスを持つ場合、デカップルシステムを作成できます。私のプログラムをアップロードするには、WindowsサービスからWeb APIシステムへのURLを変更します。

このデザインについてどう思いますか?私はそれを直接呼び出すことができますそれは良いアイデアは、Web APIからWeb APIを呼び出していますか?あなたは、クロスドメイン
を避けるために必要がある - - あなたは、いくつかのインターフェースを適応する必要がありますが、変更したくない
:とき

答えて

0

このデザインについてどう思いますか?私はそれを直接呼び出すことができますそれは良いアイデアは、Web APIからWeb APIを呼び出していますか?

これはサービスプロキシ、ゲートウェイ、ファサードと呼ばれます。元の名前は何だったのか、誰がそれを主張したのかは分かりませんが、使用に間違いはありません。実際、プロキシの背後にあるターゲットサービスを隠すことは非常に一般的です。追加の機能は、必要に応じて後で追加することができます。たとえば、既存のコンシューマに影響を与えずに、リトライロジック、キャッシング、ロードバランシング、新しいサービスコール、カスタムエラー処理、または新しいテクノロジを導入することができます。基本的に、これはサービスのバージョン管理を維持する適切な方法です。 /api/v1/uploadを公開し、/api/v2/uploadにフィールドA〜Zを追加することを決めた場合は、v1v2の後ろに非表示にして、A〜Zの代わりにデフォルト値を送信することができます。私はそれが良いデザインだと言っているわけではありませんが、私はあなたがそれを見たと確信しています。 sync APIの背後にある非同期APIを隠すことは別の例です。

0

それは、あなたの目的に依存ウェブAPIからWEP APIを呼び出すでは通常使用されています元のAPI
- 元のAPIを実行する前に、もう少しアクションを加えたい場合

あなたの場合は問題ありません。

関連する問題