XML サービス API のパススルーとして機能する Rails アプリがあります。
主なユースケースは次のようになります。
- ユーザーはhttp://example.com/model/reportを介して Rails にパラメーターを POST します。簡潔にするために、フォームが単に送信されるとしましょう
zip_code=90010
。 - Rails
zip_code
は RestClient を取得して使用し、GET リクエストを介して外部 XML サービス API をクエリします: http://xmlservice.example.com/report?report_id=1&zip_code=90010 - レポートの応答は XML 経由で返されます。Nokogiri 経由で XML を解析し、report.html.erb 経由で通常の HTML ビューを出力したいと考えています。
XML (Nokogiri) コードを配置する場所を見つけるのに苦労しています。モデルで XML を処理する必要がありますか、それともコントローラーですべての解析を行う必要がありますか?
両方の方法が機能することはわかっていますが、ベストプラクティスが何であるかを知りたいです。これもバックグラウンドの XML フィード グラブではないため、夜間に実行される遅延ジョブには適していません。24 時間年中無休で動的要求に応答する必要があります。
最適化のためにアプリから ActiveRecord を削除したことを覚えておいてください。このアプリはデータベースには触れません。これは基本的に、クライアントの HTML 出力をレンダリングする XML API へのパススルーです。
「スキニーコントローラー」と「ファットモデル」を使用するのが最善であると読んだことがありますが、そこにあるノコギリの例のほとんどはdoc = Nokogiri::XML(RestClient.get(myurl, myparams))
、コントローラー内に型コードを持っています。
それで... モデルまたはコントローラー?
ありがとう!