0

Web サービス用のクライアントをセットアップしましたが、soap4rかなりうまく機能しています。これを使用して、あるデータベースから別のデータベースにデータを送信しています (気にしないでください... それが最適ではないことはわかっています) が、マッピングが正しいかどうか完全にはわかりません。特定のレコードが生成する XML。

もちろん、それは可能です。 を設定すると$DEBUGsoap4rネットワーク経由で送信される XML の適切なダンプが提供されます。送信先の「デバイス」(ファイル)を設定することもできます。

ただし、実際に Web サービスを呼び出さなくても、生成される XML を取得できるようにしたいと考えています。

これを行う方法はありますか?ぐるぐる回って、さまざまなobj2soap類似の方法を見つけましたが、どれも私が望むものではないようです。

4

1 に答える 1

1

間接的な答え: handsoapを見たいと思うかもしれません。より高速で、より Ruby に似せようとしています。ビルダー スタイルの XML 生成を使用しますが、すべてを自分で生成する必要があります。クライアントをきれいな方法で書くためのツールボックスのようなものです。このようにして、何が生成されたかがわかります (また、簡単に調べることができます)。

もう 1 つのオプションは、$DEBUG を設定し、後で復元することです。

$REMEMBER_DEBUG_STATE = $DEBUG
$DEBUG = true
# call soap (and have your XML generated)
$DEBUG = $REMEMBER_DEBUG_STATE

これは、次のような素敵な関数に抽出できます。

def with_debug_output
  remember = $DEBUG
  $DEBUG = true
  yield if block_given?
  $DEBUG = remember
end

そしてそれを使用します:

with_debug_output do
  # call soap
end
于 2009-07-31T21:20:42.213 に答える