質問: 現在、railsを用いてwebサイトを作成しようとしています。MVCの基本的な概念はRubylifeというサイトで学んだところです。 これからサイトを作成していこうと思っているのですが、データのやり取りについて疑問があります。 それは、データをmodelから返却してviewに埋め込むのか、それともブラウザ側からscriptでロードするのかはどういう基準で判断すればいいのか、ということです。 例えば、あるページの一部の要素が一週間ごとに追加されていく(この追加されていく部分は、他のサイトをスクレイピングして得られると仮定します)場合、どちらの実装になるのでしょうか? 得られたデータをjsで描画する場合にはapiを作ることになるかと思いますが、一般的にどういう使い分けがされるのか、また上の例の場合ではどう判断するのかを教えていただきたいです。 それに加え、このような使い分けの問題について言及しているサイトもあれば教えていただきたいです。宜しくおねがいします。
回答: > > 得られたデータをjsで描画する場合にはapiを作ることになるかと思いますが、一般的にどういう使い分けがされるのか > > > Railsアプリには、"通常モード" と "APIモード" があります。 "通常モード" は、主にデータやアセット(画像やjavascript、css)を埋め込んだHTMLを返却するアプリになります。 "APIモード" は、データをJSON形式で返却するのみのアプリになります。 そのため、 他のアプリケーションにデータを提供したい場合は、"APIモード" を使います。 (スマフォアプリ、デスクトップアプリ、React,Vueなどを使ったクライアントサイドアプリなどにJSON形式のデータを提供する場合) Railsアプリが返却するHTMLで描画を行いたい場合は、"通常モード" を使います。 > > 例えば、あるページの一部の要素が一週間ごとに追加されていく(この追加されていく部分は、 > > 他のサイトをスクレイピングして得られると仮定します)場合、どちらの実装になるのでしょうか? > > > 判断基準は、"あるページ" をどのように提供したいか? だと思います。 "あるページ" をRailsアプリとは別のアプリケーションにする場合は、"APIモード" で実装し、 "あるページ" をRailsアプリが返却するHTMLにする場合は、"通常モード" で実装することになると思います。 > > それに加え、このような使い分けの問題について言及しているサイトもあれば教えていただきたいです。宜しくおねがいします。 > > > APIモードはRails5以降の機能のようです。 Rails5, APIモード といったキーワードで、いくつかサイトの記事や書籍を流し読みすると、 関連する用語や概念がつかめて良いと思います。