2

私は2つのASP.NETコアWebアプリケーション(物理サーバーが異なる)を使用していますが、どちらもEFコアを使用しています。両方とも「サーバ」であるが、一方は他方からデータを収集する(すなわち、一方も「クライアント」である)。2つのASP.NETコアサーバーアプリケーション間で通信するにはどうすればよいですか?

「MVC」と「WebAPI」が存在しないため、ASP.NETコアは異なります。両方が結合されています。私はどのような新しいAPIを使うべきか分かりません。

どのようにデータを転送する必要がありますか?

私の最初の考えは、「クライアント」アプリケーションがデータを返す認証され、許可されたGETアクションを持っていることです。しかしどうですか? EFエンティティを直接返すことはできますか、またはJSONとのシリアル化を担当していますか?それはIActionResultまたは何か他のものを返すべきですか?それは定期的なものかAJAXリクエストか? OWINはこれに関係していますか?

現在、ASP.NETコアで使用できるスマートなテクニックはありますか?私は解決策は必要ありません。正しい方向のポインタが必要です。

+3

クライアントの観点から見ると、サーバーが「コア」か「Web API」かその他の技術であるかどうかは違いありません。結果として得られる外部振る舞いは、フードの下でどのフレームワークが使用されているかにかかわらず同じです。以前のバージョンのWeb APIとまったく同じように、データを返すアクション(JSONフォーマットの可能性はありますが、任意のフォーマットを使用できます)があると思います。 – David

+0

@David確かに、コアは新しくて光沢があり、このすべてを簡単にするためのクールなものがあるかもしれないという疑いがあります。たとえば、以前には実行できなかったすべての種類のデータをアクションから戻すことができます。私は基本的にホイールを再発明したくありません。 – grokky

+0

Web APIの以前のバージョンでは、「EFエンティティを返す」場合、そのメソッドからそのオブジェクトを単に返すだけでした。私はそれがどのようにそれより簡単になったのか分かりません。 C#では、あるメソッドから何かを返すときは、それを 'return 'します。どのように新しいものであるかにかかわらず、フレームワークはまだC#を使用しています。多分あなたは単純化しようとしているものの例を明確にすることができますか? – David

答えて

2

フレームワークに新しいヘルパーメソッド/オブジェクト/などがあるかもしれませんが。ここでは、クライアントとサーバーの間のHTTP通信に関して実際に変更されたものはありません。実際、クライアントの観点からは、どの技術がフードの下で使用されているかにかかわらず、サーバーに違いはありません。

それが直接のWeb APIが過去に持っているだけのように、できることは確かEFエンティティ

を返すことができます。以下のような単純なもの:

public Widget Get(int id) 
{ 
    return _widgetRepository.Get(id); 
} 

(。ここではいくつかの種類のリポジトリの実装を想定していますが、アイデアを得る)

このため、デフォルトのHTTP応答は、一般的にJSON形式のレスポンスボディで、応答コード200 OK様々なフレームワークヘルパーを使ってそれ以上のコントロールをすることができます。それらのいくつかの概要と紹介はhereです。

サーバーからの結果をどのように返すかにかかわらず、クライアントは他のものと同じようにHTTP応答を取得しています。私は30文字分の検証を渡すことができますので、コード、ヘッダ、コンテンツ、など

-1

SignalR

は、いくつかのより多くの文字を..plus。

+0

SignalRはクライアント間の通信用です – Alexan

関連する問題