私は一群のウェブアプリを一から作成しようとしています。(概要についてはhttp://50pop.com/codeを参照してください。)フロントエンドWebサイト、スマートフォンアプリ、バックエンドWebサービスなど、さまざまなクライアントからアクセスできるようにしたいので、それぞれのJSON REST API。
また、私はバックエンドで作業することを好むので、純粋にAPIに焦点を当て、ウェブサイト、iPhone、Android、その他のアプリなど、フロントエンドUIを作成するために誰かを雇うことを夢見ています。
私が取るべきアプローチを決めるのを手伝ってください:
共に歩む
非常に標準的なRails Webアプリを作成します。コントローラーで、response_withスイッチを実行して、JSONまたはHTMLを提供します。JSON応答は私のAPIです。
プロ:先例がたくさん。このように物事を行うための素晴らしい基準と多くの例。
欠点: APIがWebアプリと同じである必要はありません。if / then respond_withスイッチアプローチは好きではありません。2つの非常に異なるもの(UI + API)の混合。
RESTサーバー+ JAVASCRIPT-HEAVYクライアント
JSONのみのREST APIサーバーを作成します。クライアント側JavaScriptのBackboneまたはEmber.jsを使用してAPIに直接アクセスし、ブラウザーにテンプレートを表示します。
プロ: APIとクライアントの分離が大好きです。賢い人々は、これが進むべき道だと言っています。理論的には素晴らしい。最先端でエキサイティングなようです。
欠点:先例はあまりありません。これの多くの例はうまくいっていません。公開されている例(twitter.com)は遅いと感じており、このアプローチから切り替えさえしています。
RESTサーバー+サーバー側HTMLクライアント
JSONのみのREST APIサーバーを作成します。REST APIのみにアクセスする基本的なHTML Webサイトクライアントを作成します。クライアント側のJavaScriptの削減。
プロ: APIとクライアントの分離が大好きです。ただし、プレーンHTML5を提供することは、まったく簡単で、クライアントに負荷をかけません。
欠点:先例はあまりありません。これの多くの例はうまくいっていません。フレームワークもこれをサポートしていません。それへのアプローチ方法がわからない。
特に理論だけではなく、経験からのアドバイスを探しています。