18

Web API サービスのいくつかのルートをホストする MVC ソリューションがあります。場合によっては、単純な HTTP get を使用して JavaScript からこれらを呼び出します。他の例では、何らかの .NET コード、おそらく別の MVC アプリケーションからそれらを呼び出したいと考えています。

これらの Web API エンドポイントにサービス参照を追加し、典型的な WCF サービスの場合と同様に、ツールでプロキシ クライアントと CLR 型を作成する方法はありますか? ここにSOAPが含まれていないことは知っていますが、それが可能であることを読みました。方法ではありません。

4

3 に答える 3

18

いいえ、REST サービスです。REST サービスは、サービス参照によってプロキシを作成するためのメタデータを公開しません (特殊な形式のメタデータを持つ WCF Data Services を除く)。Web-API のHttpClientクラスを使用してサービスを呼び出します。

于 2011-07-13T15:34:24.730 に答える
8

それを行うための標準的なメカニズムはありません。REST とは、クライアントがサーバーから独立して進化できるようにするシステムを構築することです。HTTP は、GET、PUT、POST、DELETE などの統一されたインターフェイスを定義しているため、メソッドの説明は必要ありません。どちらの理由からも、REST WSDL に相当するものはありません。つまり、REST コミュニティの間で実際に勢いを増している (つまり、WADL がある) 相当するものはありません。

REST サービスでの結合のポイントは、実際にはメディアの種類と本文の形式にあります。そのために、強く型付けされたメカニズムをサポートしています。Web API では、CLR 型を取得して何らかの表現に変換できるようにする HttpClient (Nuget の HttpClient) を出荷しています。すぐに使用できる XML と JSON をサポートしています。

したがって、CLR 型を作成してクライアントと共有し、クライアントで HttpClient を使用できます。

タイプ自体を作成するには、いくつかのオプションもあります。

  1. 手で作成する
  2. 「Xml として貼り付け」ツールを使用し、Web API の自動ヘルプ ページ機能を使用してコピー/貼り付けします。
于 2011-09-02T16:00:01.900 に答える
1

直接ではありませんが、私が見たいくつかのサンプルから、WebApiを使用するにはServiceContractを設定する必要があります。必要に応じて、通常のOperationContractおよびDataContract属性を使用して2番目のサービスコントラクトインターフェイスを追加すると、選択した標準のWCFバインディングとそれに対応するMEXエンドポイントを使用してエンドポイントを作成できるようです。サービスは両方のインターフェイスを実装するため、サービス参照の追加で標準のWCFエンドポイントからWSDLドキュメントを取得できます。

于 2011-07-13T15:42:22.100 に答える