2011-12-06 10 views
1

私はWebサービスを書いています。ユーザーがこのサービスとやりとりする方法の簡単な例は、ユーザーサインアップです。ユーザーはサービスを利用してアカウントを作成できます(モバイルの場合)。一方、ユーザは、サービスを使用して(モバイルアプリから)アプリケーションにログインすることができます。現在、このサービスは既存のレールアプリケーション向けです。私の計画は、このレールアプリ内にシナトラアプリを構築し、レールエンジンとしてマウントすることです:このアプリは、適切なjsonを生成/消費するために私の既存のレールモデルと相互作用します。これは良いアプローチですか?誰もこれを前に試しましたか?ありがとうございました。Sinatra vs Rails for webservice

答えて

2

私はこのアプローチを使用しています:Rails w/Sinatraルート。あなたがRESTful APIを提供しているなら、私はまた、シントラのようなAPI固有のフレームワークGrapeを見ることを提案します。 This linkは、Railsアプリケーションの内部にGrapeをマウントする方法を示しています。運が良かった。

2

"時期尚早最適化はすべての悪の根源です。"

スピードが必要な場合は、シナトラルートのみに行ってください。例えば、あなたのレールアプリは、モバイルアプリでバイパスしたいアプリケーションコントローラで、多くの不要な計算を行うかもしれません。それでも、Sinatraのパスを開始する前に、モバイルクライアントで応答時間を食べていることは間違いありません。レスポンスタイムで10ミリ秒を切ることは、ゲームや、インタラクティブ性の高いものを開発している場合を除き、おそらくすべての開発者にとって価値がありません。

既存のRailsアプリがあるので、Railsを使用してください。それはあなたが必要とするコードの大部分をすでに持っています。いくつかのJSONビューを書くだけです。並列Rails/Sinatraスタックよりもずっと簡単で、保守が簡単です。

0

私はあなたがRailsを取り除き、それを忘れるべきだと思います。あなたのミドルウェアのためにできる限り、あなたのアプリにSinatraを使用し、純粋なRackだけを使用してください。

一般的な考え方とは対照的に、Sinatraで大規模なアプリケーションを簡単に構築できます。内部は任意の方法で整理できます。

レールが遅いです。なぜすべてを高速で走らせるのはなぜですか?シナトラと純粋なラックでは絶対に何もできません。それは信じられないほど柔軟です。

関連する問題