13

今後のプロジェクトでは、ASP.NET WebAPI 2 を使用して、Web サイトとブラウザー クライアントの両方にサービス機能を公開することを検討しています。

可能な場合は「エンドポイント」をできるだけ少なくしたいので、「内部」であっても、WebAPI Web サービスからサーバーを消費するすべての呼び出しが必要です。(つまり、コントローラーインスタンスを直接新しくするだけではありません)

HTTPClient をラップし、厳密に型指定された「プロキシ」を提供する C#「クライアント」を生成またはスキャフォールディングするのに役立つものを探しています。「新しいサービス参照の追加」を介してプロキシを生成する場合の WCF に似ています。

同様のことを尋ねる他の質問を読みましたが (ここで見られるように)、 MVCやテストの懸念に関係のない、より直接的な質問をしたいと思いました。

4

4 に答える 4

1

データにアクセスするために本格的なライブラリは必要ありません。共通ライブラリで定義されたデータ オブジェクトがある場合は、汎用ヘルパー メソッドを使用して次のようなことを行うことができます。

    public static TItem GetItem<TItem>(this HttpClient httpClient, string queryString) where TItem : class
    {
        var response = httpClient.GetAsync(queryString).Result;
        if (response.IsSuccessStatusCode)
        {
            return response.Content.ReadAsAsync<TItem>().Result;
        }

        throw new HttpRequestException(response.ToString());
    }

ただし、独自のエラー処理などに合わせて変更してください。

于 2013-10-21T17:43:45.977 に答える
1

使いやすい Web API 機能を提供する最も一般的な方法は、メイン クラスとポスト機能を定義するアセンブリを使用することです。このアセンブリは、JSON を使用してデータを転送します。

PayPal の統合 API がどのように機能するかを見てみましょう。基本的に、使用中のさまざまなクラスの定義を含むアセンブリを提供します。データをサーバーに転送するためのクラスがあります。

クライアントは、実際にどのように通信しているかは気にしませんが (すべてブラック ボックス内にあります)、事前定義されたクラスを使用するか、独自のクラスをロールするかを選択できます。

于 2013-10-21T16:51:13.050 に答える