ActionWebServiceを使ってみた

  • Railsはweb serviceの開発でも開発効率いいよ。

    • ここ2日掛かって実装した代物と同等の物が3時間でできたよ。
    • でもやっぱり、実行速度はsoap4rでベタに実装したほうがずっといいよ
  • 動的型言語で普通にSOAP実装しようとすると、型情報が不足しててWSDLを生成できないよ。

    • WSDLは自由度の半面、message, operation, port, binding, serviceとレイヤーが挟まってて冗長だから、書くのが大変だよ。
    • ActionWebServiceならお得意の所謂DSLっていうのを使って型情報を補足できるよ
    • 生のWSDLより抽象度を落としてレイヤーを少なくしてる分、記述はDRYだよ
    • でも、普通はこれで足りるよ。っていうか、あんまり変なWSDLを書くとクライアント側のマッパーが理解できないよ。
    • documentじゃなくてRPCスタイルっていう前提があるなら、これぐらいの割り切りは妥当かもしれないよ。
    • AWDwR chap.20参照だよ。
    • XML書かなくていいので楽だよ。
  • ActiveRecord::Baseの子クラスのインスタンスをoperationの返り値に指定できるのは便利だよ

    • でも、引数に指定しようとしたら ActionWebService::ActionWebServiceError, "ActiveRecord model classes not allowed in :expects"とか怒られたよ
    • そりゃ、そうかもしれないけど、そこをrailsパワーでなんとかしてほしいよ
    • 結局DTOが必要だよ

どうしたもんだろう。ActionWebServiceに乗り換えるべきか、やめるべきか。不安材料は実行速度なのだけれど、これは負荷試験してみないと何とも言えない。今ごろこんなことを検討してるあたり、このプロジェクトの進捗のヤバさ加減が分かろうというもの。