私が取り組んでいる新しいプロジェクトがあります。 プロジェクトの目的は、すべてのサービスコールを集中化し、他のサービスに単一のエントリポイントを提供することです。イントラネットサービスにWCFが使用される理由は何ですか?
現在、さまざまなソースから内部的にデータを取得するために開発者が呼び出すサービスは約5種類あります。
このプロジェクトでは、会社内の他の開発者がこれらの5つの異なるサービスをすべて単一のサービスから呼び出すことができる単一サービスを作成します。
私は、Web API(RESTfulな)またはWCF(SOAPベース)を使用してサービスを構築する必要があります私の質問は
のですか?
私はこのサービスを作成するための安らかなアプローチを私のマネージャーから提案されました。しかし、このサービスは社内で使用されているので、WCFはWSDLのために適切なアプローチであると信じています。これは、返されたデータを解析するクライアントではなく、プロキシクラスの作成とオブジェクトの使用です。
また、WCFはアクション駆動型で、Web APIはリソース駆動型です。
アクション駆動型モデルはいつ使用しますか?リソースドリブンはいつ使用しますか?
私の状況を把握して、どのアプローチを自分のプロジェクトに適用するかを決定するのに役立ちます。
これまで私がこれまで持っていたことはありますが、まだどちらかを使うように説得するには十分ではありません。
WCF
- SOAPベースのサービス
- 複数のトランスポート・プロトコル(等HTTP、TCP、UDP)
- プロキシを作成するためのWSDL(タイプ安全なバインダークラス/オブジェクトを生成)
- それクライアントがクラスライブラリのようにサービスエンドポイントを参照することができます。つまり、デスクトップクライアントのXMLまたはJSONを処理していません。あなたはクラス&オブジェクトで作業しています。
- サービスはサービス
のWeb APIを文書化するために+
- RESTfulサービス
- HTTPクラス市民)メディアタイプ(XML、JSONの
- ワイド品種)
- 公開API(クライアントの多種多様) 軽量
- ないWSDL(多くの場合、クライアントが自分でデータを解析して終了)
UPDATE:
私の質問は、WCFは、イントラネットアプリケーションのために使用すべきである理由を理解することです。それは自動的にプロキシ・クラスを作成するWSDLとWeb APIであるため、返されたXMLまたはJSONを解析するためにクライアント側でより多くの作業を行う必要がありますか?
これは「広すぎる」と回答が終了する可能性があります。 Web APIは、さまざまなプラットフォームやツールセットで作業するのがずっと簡単です。 SOAPは、クライアントとサーバーに全く同じツール/ライブラリを使用できる場合に最適です。 gSOAPやMicrosoftのようなさまざまなツールを統合することは悪夢になることがあります。 –
Web APIは、HTTP POSTまたはGETになっているため、専用のライブラリを持たずに「手作業で」行うこともできます。 SOAPは少数の小さな呼び出しを超えて手作業で行うことはできません。 –
私が読んだすべての記事は、WCFがイントラネットアプリケーションに使用されるべきだと示唆しています。 Web APIは公開APIサービスに使用する必要があります。私の質問は、イントラネットアプリケーションにWCFを使用する理由を理解することです。それは自動的にプロキシ・クラスを作成するWSDLとWeb APIであるため、返されたXMLまたはJSONを解析するためにクライアント側でより多くの作業を行う必要がありますか? –