Ruby on Railsのバックエンドを構築する方法は?
このチュートリアルでは、Back4Appを使用してRuby on Railsのバックエンドを構築する方法を学びます。
Railsアプリケーションをデータベースの相互作用、Cloud Code Functions、RESTおよびGraphQL API、ユーザー認証、リアルタイムクエリ(ライブクエリ)などの重要なBack4App機能と統合するための主要なステップを探ります。すべてサーバーサイドで実行されます。
Rubyプログラミング言語を活用することで、RailsのビューコントローラMVCパターンに沿った堅牢でスケーラブルなアーキテクチャを構築し、開発者がWebアプリケーションの開発を加速できるようにします。
また、Back4Appがサーバーとデータベースの管理を簡素化することで、時間と労力を大幅に削減する方法を発見します。
これらの自動化機能により、手動でWebサーバーを設定したり、複雑なインフラに対処したりする必要がなくなります。
最後には、追加の統合や高度なカスタムロジックなどのさらなる拡張に備えた、柔軟で安全な構造を持つことができます。
ウェブページを提供するか、データ駆動型のウェブアプリケーションを構築したい場合、RailsとBack4Appは人気のプログラミング言語で現代的なソリューションを作成するためのシームレスな相乗効果を提供します。
このチュートリアルを完了するには、次のものが必要です:
- Ruby on Rails開発環境 Rubyがインストールされていることを確認してください(できればバージョン2.7以上)と、Rails gem(Rails 6以上)。 Railsをインストールする
- Rails MVCの理解 Ruby on Railsが初めての場合は、公式Railsガイドまたは初心者向けのチュートリアルを確認して、RailsのビューコントローラーMVCアーキテクチャを理解してから始めてください。
始める前に、これらの前提条件が整っていることを確認してください。Back4Appプロジェクトが設定され、さらにあなたのRailsアプリケーションのスキャフォールドが準備されていることが、スムーズなチュートリアル体験を保証します。
Railsアプリケーションのためのサーバーサイドバックエンドを設定する最初のステップは、Back4Appで新しいプロジェクトを作成することです。まだ行っていない場合は:
- Back4appアカウントにログインする.
- 「新しいアプリ」ボタンをクリックする あなたのBack4Appダッシュボードで。
- アプリに名前を付ける (例:「Rails-Backend-Tutorial」)。
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/drXO0UqsgxhFvRDiVmsMb_image.png?format=webp)
プロジェクトが作成されると、それはあなたのBack4Appダッシュボードに表示されます。この新しいプロジェクトは、このチュートリアルのすべてのバックエンド設定のコアを形成します。
データベースの相互作用とリアルタイムクエリを効率化するために、Back4AppはParseプラットフォームを使用しています。もしあなたが直接ParseとRailsサーバーを統合したい場合は、parse-ruby-client gemをインストールすることができます。そうでなければ、標準のRESTまたはGraphQLエンドポイントに依存することができます。
Parseキーを取得する: あなたのBack4Appダッシュボードで、アプリの「アプリ設定」または「セキュリティとキー」に移動して、あなたのアプリケーションIDとREST APIキーを見つけてください。あなたはまた、ParseサーバーURL(例、https://parseapi.back4app.com)も取得します。
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/F9teHXd_M8ERn1OPGirbi_image.png?format=webp)
parse-ruby-client gemを追加します Gemfile:
次に実行します:
Parseを初期化します。例えば config/initializers/parse.rb:
この時点で、あなたの Railsアプリケーションは、データの保存と取得、カスタムロジックの調整などのためにBack4Appと通信できるようになります。この統合アプローチにより、Ruby on Railsアプリがバックエンドを処理する方法が簡素化されます。
多くの ウェブアプリケーション, RailsではActiveRecordマイグレーションを使用してデータ構造を定義します。Back4Appを使用すると、ダッシュボード上で直接スキーマを構築するオプションもあります。たとえば、Todo モデルがある場合:
- 「データベース」に移動します。Back4Appダッシュボードで。
- 「Todo」という新しいクラスを作成し、次のようなカラムを追加します:title (文字列) と isCompleted (ブール値)。
![新しいクラスを作成 新しいクラスを作成](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/iaZ_P-7epc_LSMFIPlaZV_image.png?format=webp)
Back4Appは 文字列, 数値, ブール値, 日付, ファイル, ポインタ, リレーション, 配列, ジオポイント, および ポリゴン. Railsは通常、これらをモデル定義内で管理しますが、Parse SDKまたはREST/GraphQL APIを使用する場合、最初の保存時にParseがカラムを自動的に作成することもできます。
![カラムを作成 カラムを作成](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/DEh9vyxdBTZcslXxkVQMA_image.png?format=webp)
Back4AppのAIエージェントはスキーマの作成を自動化できます:
- AIエージェントを開く あなたのダッシュボードから。
- データモデルを説明する(例:「新しいToDoアプリを完全なクラススキーマで作成してください。」)。
- エージェントにスキーマを生成させる。
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/0snNZwHWzxuXlNu30n7IA_image.png?format=webp)
「parse-ruby-client」を統合することを選択した場合、次のようにレコードを保存できます:
また、Railsコード(または任意の外部クライアント)内からREST呼び出しを使用することもできます。たとえば、Todo:
Back4AppはGraphQLも提供しています:
リアルタイムの更新を希望する場合は、Railsアプリケーション, フロントエンドまたはWebSocketクライアントからライブクエリにサブスクライブできます。Back4Appのサーバー設定, でライブクエリを有効にし、wss://YOUR_SUBDOMAIN.b4a.ioに接続して、変更のストリームを継続的に受信します。これは、即時のデータ更新が必要な動的なウェブアプリケーションに役立ちます。
セキュリティはウェブアプリケーション開発において重要です。Back4Appは、アクセス制御リスト(ACL)とクラスレベルの権限(CLP)を提供して、オブジェクトとクラスの両方のレベルでデータの可視性を制御します。これにより、認証されたユーザーまたは権限のあるユーザーのみが機密データを読み書きできることが保証されます。
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/PdAyrw1nqA1QQJFuCc-4t_image.png?format=webp)
- Back4Appダッシュボードのデータベースに移動します。
- クラスを選択します(例:「Todo」)。
- CLPのタブを開きます、役割、認証されたユーザー、または一般公開による読み書きアクセスを設定します。
オブジェクトにACLを設定することで、特定のユーザーのみがそれを読み取ったり変更したりできるようにできます。Railsでは、parse-ruby-clientを使用すると、次のようになります:
クラウドコードはサーバーサイドのJavaScriptを実行し、開発者が独自のロジック、トリガー、バリデーションを追加できるようにします。自分のウェブサーバーを管理することなく、データを保存する前に追加のサーバーロジックを処理したり、チェックを行ったりすることができます。
以下はJavaScriptの例です。あなたのRailsサーバーがメインアプリを処理している間、クラウドコードを使用してデータを処理することができます:
Back4App CLIを通じてデプロイすることができます。または、Back4Appダッシュボードからもデプロイできます。クラウドコードは、使用するプログラミング言語に関係なく、すべてのクライアント間で共有されるロジックをカプセル化する便利な方法です。ノードベースのモジュール(NPM)サポートにより、外部パッケージをシームレスに統合できます。
Back4Appは、Parseの組み込みユーザークラスを使用して、ユーザーのサインアップ、ログイン、セッションを管理します。REST呼び出しまたは公式SDKを通じてユーザーを作成できます。
Facebook、Google、またはAppleのサインインフローを統合できます。各プロバイダーは若干異なるアプローチを持っていますが、主な原則はParseとトークンを交換することです。これらをあなたの rails application に統合する方法の詳細については、公式の ソーシャルログインドキュメント を確認してください。
Parseを使用してファイルを扱うのは、Parse APIを通じてアップロードするのと同じくらい簡単です。parse-ruby-clientを使用している場合:
このファイルをオブジェクトに添付できます:
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/jOFU8C0qiFm6wiVZXS9l0_image.png?format=webp)
- メール確認を有効にする は、あなたのBack4Appダッシュボードの メール設定 の下で行います。
- パスワードリセットを設定する メールテンプレートとドメイン設定をカスタマイズすることによって行います。
- メールフローをトリガーする ユーザー登録後またはユーザーがパスワードリセットを要求したときに自動的に行います。これにより、セキュリティが向上し、有効なメール所有権の確認に役立ちます。
データのクリーンアップや日次サマリーの送信などのタスクを自動化したい場合は、クラウドジョブを使用してください。
そのようなジョブは、Back4Appダッシュボードの サーバー設定 > バックグラウンドジョブ でスケジュールして、毎日または希望の間隔で実行できます。
ウェブフックを使用すると、特定のイベントが発生したときに、Back4Appアプリが外部URLにデータを送信できます。新しいまたは更新されたオブジェクトデータを、StripeやSlackなどの別のシステムに転送できます。
- Back4Appダッシュボードの その他 > ウェブフック に移動します。
- 外部URLを指す新しいウェブフックを追加します。(例:Railsコントローラーのルート)。
- ウェブフックをトリガーするイベントを指定します。
![Webhookの追加 Webhookの追加](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/morUMdwsAbVQ1EmBfUfAA_image.png?format=webp)
好みに応じて、beforeSaveまたはafterSave関数内でHTTPリクエストを行うことで、Cloud CodeからWebhookをトリガーすることもできます。
![BeforeSave WebHook BeforeSave WebHook](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/fXvy4eRzabyWmN80OMyqW_image.png?format=webp)
「Back4App管理アプリ」は、非技術的なチームやクライアントがBack4Appデータに対してCRUD操作を行うためのユーザーフレンドリーな方法を提供します。このインターフェースは、基本的なタスクのために直接コードを変更したり、Parse Dashboardを使用する必要を排除します。
ダッシュボードから「管理アプリを有効にする」に移動し、「管理アプリを有効にする」をクリックすることで、管理アプリを有効にできます。
![管理者アプリを有効にする 管理者アプリを有効にする](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/5BTk1ntDh9JLXurObmm_o_image.png?format=webp)
有効にすると、次のことができます:
- クエリを書くことなくデータを作成および管理する。
- ログを監視し、バックグラウンドジョブをスケジュールし、プッシュ通知を処理する(有効な場合)。
- チームメンバーに対して役割ベースのアクセスを提供し、安全な編集を実現する。
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/u-pU1yBJJxa9KEM2psjXS_image.png?format=webp)
おめでとうございます!Back4Appを使用してRuby on Railsのバックエンドを構築する方法を学びました。このチュートリアルでは、あなたは:
- Railsプロジェクトを設定しました、REST、GraphQL、またはParse Ruby Clientを介してBack4Appと対話します。
- 安全なデータベースインタラクションを設定しました、クラススキーマ、ACL、CLP、およびオプションのライブクエリを使用します。
- ユーザー認証を統合しました、メール確認とパスワードリセットを含みます。
- Cloud Codeをデプロイしました、カスタムロジック、トリガー、およびスケジュールされたタスクのために。
- ファイルアップロードを管理しました, ウェブフックを活用し、管理パネルを探求しました。
Ruby on RailsのMVCアーキテクチャとBack4Appの強力な機能セットを組み合わせることで、あなたのRailsアプリケーションはシームレスにスケールできます。
インフラストラクチャの管理にかなりの時間を節約でき、洗練されたユーザーエクスペリエンスと信頼性の高いサーバーサイドロジックを持つWebアプリケーションの構築に集中できます。
- Railsアプリを拡張します、より複雑な関係、キャッシング戦略、または高度な統合を追加します。
- サードパーティAPIを組み込みます(支払いゲートウェイなど)を利用し、Cloud Codeを活用してより深いWebアプリケーション開発を行います。
- 公式のBack4Appドキュメントを探求します、高度なセキュリティ、パフォーマンスチューニング、ログ分析などについて。
- リアルタイム機能を試してみます、チャットアプリやコラボレーションプラットフォームを作成します—頻繁に変化するデータに最適です。
これらの基本が整ったら、Railsサーバーを迅速に開発、反復、スケールできます。コーディングを楽しんでください!