私たちは確立されたWCF SOAPサービスを持っています。そのインタフェースはWSDLで定義されており、そこからC#クラスが生成されます(顧客は同じWSDLからさまざまな言語のクライアント側のバインディングを生成します)。 WSDLには、少し変更することができる最新バージョンと、廃止予定や相談などがなければ変更や削除ができない古いバージョンがあります。SOAPリクエストは複雑で、同じリクエスト内に複数のXML名前空間を持つ傾向があります。既存のSOAPサービスと新しい角型Webアプリケーション
WCF SOAPサービスには多くの "スマート"があり、必要な新しいWebアプリケーションに必要なフェッチとレポーティング機能を提供します。 AngularJSをそのクライアント側で使用したいと考えています。しかし、これらの複雑なSOAP要求はJavaScriptの世界では容易ではありません。私たちがRESTサービスしか持っていなかったら、角度リソースサービスを使うことができました。そうでなければ、JSONを話しているサーバーはSOAPのようなRPCスタイルではあるが、かなり近い秒を実行するだろう。
私は、サーバーとクライアントの間のインピーダンスの不一致がどのように緩和されるかについて、さまざまな考えを持ってきました。しかし、すばやく簡単なものはありません。
私は考えた: -
- 新しいRESTサービスを書きます。クライアント側が望んでいるものとまったく同じですが、深刻な新しい開発です。
- WebHttpBindingは何かを提供するように見えます。しかし、カスタム属性のC#マークアップ(WSDLからC#を生成する方法)が必要で、複雑な型をサポートしていない可能性があります。
- 呼び出し側のJSを抽象化するために、サービス。しかし、これがWSDLから自動生成されない限り、クライアント側のコードを書くのは膨大な量です。
- 私が発明したいくつかのJSON形式のメッセージを受け入れるために、サーバーのIDispatchMessageFormatterを記述します。 IDispatchMessageFormatterを実装して統合する人々の良い例が来るのは難しいようです。
- JSONとXMLを入れ替えるMessageEncoderを作成します。しかし、これは本当にエンコード操作ではなく、私がそれを書こうとしたときに非常に明確になりました!
私は提案を探しています。
? WCFサービス実装クラス(1 Webメソッド:1オペレーションコントラクト)を組み込み呼び出すWebAPIサーバーを作成し、jsonとして再パッケージ化されたデータオブジェクトを盲目的に返します(つまり、オペレーション契約の数と複雑さを考えれば実現可能ですか)。可能なはずですが、サービス操作で多型に頼っている場合、それらはJSON(AFAIK)で複製できません。 –
7つのサービスと合計約50の操作があります。 – PeteAC
石鹸サービスに呼び出しを委託する休憩サービスの作成についてはどうですか? –