2012-03-26 11 views
3

私は2つの "クライアント"を持つRailsアプリケーションを持っています - iOSアプリケーションはJSONを読み書きし、HTMLを読み込むWebブラウザです。さまざまなコントローラクライアント(Web、iOS API)を扱うRailsの方法は何ですか?

「さまざまなブラウザ/クライアントで異なる出力が必要です」と言えば、異なるERBファイルを使用して、User-Agentなどに基づいてレンダリングすることができます。

このように、RailsはWebの世界で想像されました。私は "cap deploy"と入力し、すべての "インスタンス"を最新のバージョンにアップグレードします(アクティブセッションAJAX呼び出しを保存します)。

しかし、私は、異なるデータバージョン&クライアントアプリケーションのバージョンを扱うコードでは、ブロックifブロックに非常に慣れています。それは苦痛です(しかし、必要です)。

私は「私は魔法のように完全なデータ構造をバージョン1.0で考える」と言いたいのですが、おそらくそれは当てはまりません - &属性やモデルを時間がかかります。

私は、通常のHTML(上記に​​つき、優雅にアップグレードすることができます)とそのバージョン管理ロジックのすべてをミックスしたくないので、私が考えた:

  • は別のコントローラまたはちょうど作用を有します私のAPI用のAPIバージョン

の上の層としてHTML/Webバージョンを扱う「フォワーダ」を書くのiOS

  • からの呼び出しは、私が解決される問題を解決しようとしていますか?このプロジェクトを進める上で知っておくべき、何らかのリソースや指導の理念はありますか?

  • 答えて

    5

    2つのアプリケーションを作成することをお勧めします.1つはwebapp用、もう1つはAPI用です。

    これら2つのアプリケーションで使用されているすべてのモデル、テスト、ビジネスロジックを持つ外部ライブラリを使用できます。

    必要に応じて、ライブラリの特定のバージョンにAPIをロックすることができます。 古いバージョンに影響を与えずに、複数のバージョンのAPIを作成できます。 必要に応じてライブラリレベルでキャッシングを実装できます。キャッシングはすべてのアプリケーションに自動的に影響します。

    このモデルでは、特定のニーズを作成することもできます。たとえば、APIのSEOを気にしないため、実際のwebappよりもAPIのURLを短くすることができます。

    あなたはどう思いますか?

    編集:

    ここでは、ライブラリが真ん中にある、私が考えているものです。 enter image description here

    関連する問題