Quickstarters
Feature Overview
How to Build a Backend for Ruby On Rails?
32 分
はじめに このチュートリアルでは、back4appを使用してruby on railsのバックエンドを構築する方法を学びます。 railsアプリケーションをデータベースの相互作用、cloud code functions、restおよびgraphql api、ユーザー認証、リアルタイムクエリ(ライブクエリ)などの重要なback4app機能と統合するための主要なステップを探ります。すべてサーバーサイドで実行されます。 rubyプログラミング言語を活用することで、railsのビューコントローラmvcパターンに沿った堅牢でスケーラブルなアーキテクチャを構築し、開発者がwebアプリケーションの開発を加速できるようにします。 また、back4appがサーバーとデータベースの管理を簡素化することで、時間と労力を大幅に削減する方法を発見します。 これらの自動化機能により、手動でwebサーバーを設定したり、複雑なインフラに対処したりする必要がなくなります。 最後には、追加の統合や高度なカスタムロジックなどのさらなる拡張に備えた、柔軟で安全な構造を持つことができます。 ウェブページを提供するか、データ駆動型のウェブアプリケーションを構築するかに関わらず、railsとback4appは人気のあるプログラミング言語で現代的なソリューションを作成するためのシームレスな相乗効果を提供します。 前提条件 このチュートリアルを完了するには、次のものが必要です back4appアカウントと新しいback4appプロジェクト back4appの始め方。 https //www back4app com/docs/get started/new parse app アカウントを持っていない場合は、無料で作成できます。上記のガイドに従ってプロジェクトを準備してください。 ruby on rails開発環境 rubyがインストールされていることを確認してください(できればバージョン2 7以上)とrails gem(rails 6以上)。 railsをインストールする https //guides rubyonrails org/getting started html parse rubyクライアント parse sdkを直接使用する予定の場合は、 parse ruby client https //github com/parse community/parse sdk ruby gemをインストールしてback4appとのデータ操作を行うことができます。 rails mvcに関する知識 ruby on railsが初めての場合は、 公式railsガイド https //guides rubyonrails org/ または初心者向けのチュートリアルを確認して、railsの ビューコントローラーmvcアーキテクチャ を理解してから始めてください。 始める前に、これらの前提条件が整っていることを確認してください。back4appプロジェクトが設定され、さらにあなたの railsアプリケーション のスキャフォールドが準備されていることが、スムーズなチュートリアル体験を保証します。 ステップ1 – back4appで新しいプロジェクトを作成し、接続する 新しいプロジェクトを作成する railsアプリケーションのための サーバーサイド バックエンドを設定する最初のステップは、back4appで新しいプロジェクトを作成することです。まだ行っていない場合は back4appアカウントにログインする 「新しいアプリ」ボタンをクリックする あなたのback4appダッシュボードで。 アプリに名前を付ける (例:「rails backend tutorial」)。 プロジェクトが作成されると、それはあなたのback4appダッシュボードに表示されます。この新しいプロジェクトは、このチュートリアルのすべてのバックエンド設定のコアを形成します。 parse sdkを接続する(オプション:parse ruby client) データベースの相互作用 とリアルタイムクエリを効率化するために、back4appはparseプラットフォームを使用しています。もしあなたが直接parseと railsサーバー を統合したい場合は、 parse ruby client gemをインストールすることができます。そうでなければ、標準のrestまたはgraphqlエンドポイントに依存することができます。 parseキーを取得する あなたのback4appダッシュボードで、アプリの「アプリ設定」または「セキュリティとキー」に移動して、あなたの アプリケーションid と rest apiキー を見つけてください。あなたはまた、 parseサーバーurl (例、 https //parseapi back4app com )も取得します。 parse ruby client gemを追加 します gemfile gem 'parse ruby client' 次に実行します bundle install parseを初期化 します。例えば config/initializers/parse rb \# config/initializers/parse rb require 'parse' parse init application id 'your application id', api key 'your rest api key', server url 'https //parseapi back4app com' この時点で、あなたの railsアプリケーション は、データの保存と取得、カスタムロジックの調整などのためにback4appと通信できるようになります。この統合アプローチにより、ruby on railsアプリがバックエンドを処理する方法が簡素化されます。 ステップ 2 – データベースの設定 データモデルの作成 多くの web applications , railsではactiverecordマイグレーションを使用してデータ構造を定義します。back4appを使用すると、ダッシュボード上で直接スキーマを構築するオプションもあります。たとえば、次のような todo モデルがある場合 「データベース」 に移動します。back4appダッシュボードで。 「todo」という新しいクラスを作成し、 title (string) や iscompleted (boolean) のようなカラムを追加します。 back4appは string , number , boolean , date , file , pointer , relation , array , geopoint , および polygon をサポートしています。railsは通常、これらをモデル定義内で管理しますが、parse sdkまたはrest/graphql apiを使用する場合、最初の保存時にparseがカラムを自動的に作成することもできます。 aiエージェントを使用したデータモデルの作成 back4appのaiエージェントはスキーマの作成を自動化できます aiエージェントを開く あなたのダッシュボードから。 データモデルを説明する (例 “新しいtodoアプリを完全なクラススキーマで作成してください。”)。 エージェントにスキーマを生成させる 。 sdkを使用したデータの読み書き もしあなたが parse ruby client を統合することを選択した場合、次のようにレコードを保存できます \# app/controllers/todos controller rb def create todo class = parse object new('todo') todo class\['title'] = params\[ title] todo class\['iscompleted'] = false begin todo class save render json { message 'todo saved successfully' } rescue => e render json { error e message }, status 500 end end def index query = parse query new('todo') results = query get render json results end rest apiを使用したデータの読み取りと書き込み また、railsコード(または任意の外部クライアント)内からrest呼び出しを使用することもできます。たとえば、 todo curl x post \\ h "x parse application id your application id" \\ h "x parse rest api key your rest api key" \\ h "content type application/json" \\ d '{"title" "finish rails guide", "iscompleted" false}' \\ https //parseapi back4app com/classes/todo graphql apiを使用したデータの読み取りと書き込み back4appはgraphqlも提供しています mutation { createtodo(input { fields { title "plan web pages" iscompleted false } }) { todo { objectid title iscompleted } } } ライブクエリの操作(オプション) リアルタイムの更新を希望する場合は、 railsアプリケーション , フロントエンドまたはwebsocketクライアントからライブクエリにサブスクライブできます。back4appの サーバー設定 でライブクエリを有効にし、 wss\ //your subdomain b4a io に接続して、変更のストリームを継続的に受信します。これは、即時のデータ更新が必要な動的な ウェブアプリケーション に役立ちます。 ステップ3 – aclとclpを使用したセキュリティの適用 簡単な概要 セキュリティは ウェブアプリケーション開発 において重要です。back4appは、 アクセス制御リスト(acl) と クラスレベルの権限(clp) を提供して、オブジェクトとクラスの両方のレベルでデータの可視性を制御します。これにより、認証されたユーザーまたは権限のあるユーザーのみが機密データを読み書きできることが保証されます。 クラスレベルの権限の設定 back4appダッシュボードの データベース に移動します。 クラスを選択します。 (例:「todo」)。 clp タブを開いて、役割、認証されたユーザー、または一般公開による読み書きアクセスを設定します。 aclの設定 オブジェクトにaclを設定することで、特定のユーザーのみがそれを読み取ったり変更したりできるようにします。railsでは、 parse ruby client を使用すると、次のようになります todo = parse object new('todo') acl = parse acl new \# set read/write for a user acl set read access for(user id, true) acl set write access for(user id, true) todo acl = acl todo save ステップ4 – クラウドコード関数の作成 クラウドコードの理由 クラウドコードはサーバーサイドのjavascriptを実行し、 開発者 が独自のロジック、トリガー、バリデーションを追加できるようにします。自分の ウェブサーバー を管理することなく、データを保存する前に追加のサーバーロジックを処理したり、チェックを行ったりすることができます。 例の関数 以下はjavascriptの例です。あなたの railsサーバー がメインアプリを処理している間、クラウドコードを使用してデータを処理することができます parse cloud define('calculatetextlength', async (request) => { const { text } = request params; if (!text) { throw new error('no text provided'); } return { length text length }; }); デプロイ back4app cliを通じてデプロイすることができます。 または、 back4appダッシュボード からもデプロイできます。クラウドコードは、使用する プログラミング言語 に関係なく、すべてのクライアント間で共有されるロジックをカプセル化する便利な方法です。ノードベースのモジュール(npm)サポートにより、外部パッケージをシームレスに統合できます。 ステップ5 – 認証の設定 ユーザー認証を有効にする back4appは、parseの組み込みユーザークラスを使用して、ユーザーのサインアップ、ログイン、セッションを管理します。rest呼び出しまたは公式sdkを通じてユーザーを作成できます。 curl x post \\ h "x parse application id your app id" \\ h "x parse rest api key your rest api key" \\ h "content type application/json" \\ d '{"username" "john", "password" "secretpass"}' \\ https //parseapi back4app com/users ソーシャルログイン facebook、google、またはappleのサインインフローを統合できます。各プロバイダーは若干異なるアプローチを持っていますが、主な原則はparseとトークンを交換することです。これらをあなたの rails application に統合する方法の詳細については、公式の ソーシャルログインドキュメント https //www back4app com/docs/platform/sign in with apple を確認してください。 ステップ6 – ファイルストレージの取り扱い ファイルストレージの設定 parseを使用してファイルを扱うのは、parse apiを通じてアップロードするのと同じくらい簡単です。parse ruby clientを使用している場合 file data = file open('path/to/image jpg') parse file = parse file new('image jpg', file data) begin parse file save puts "file uploaded #{parse file url}" rescue => e puts "error uploading file #{e message}" end 例 このファイルをオブジェクトに添付できます photo obj = parse object new('photo') photo obj\['imagefile'] = parse file photo obj save ステップ7 – メール確認とパスワードリセット メール確認を有効にする は、あなたのback4appダッシュボードの メール設定 の下で行います。 パスワードリセットを設定する メールテンプレートとドメイン設定をカスタマイズすることによって行います。 メールフローをトリガーする ユーザー登録後またはユーザーがパスワードリセットを要求したときに自動的に行います。これにより、セキュリティが向上し、有効なメール所有権を確認するのに役立ちます。 ステップ8 – クラウドジョブによるタスクのスケジューリング クラウドジョブ データのクリーンアップや日次サマリーの送信などのタスクを自動化したい場合は、クラウドジョブを使用してください。 parse cloud job('cleanupoldtodos', async (request) => { const todo = parse object extend('todo'); const query = new parse query(todo); const now = new date(); const thirty days = 30 24 60 60 1000; const cutoff = new date(now thirty days); query lessthan('createdat', cutoff); try { const oldtodos = await query find({ usemasterkey true }); await parse object destroyall(oldtodos, { usemasterkey true }); return `deleted ${oldtodos length} old todos `; } catch (err) { throw new error('error during cleanup ' + err message); } }); そのようなジョブは、back4appダッシュボードの サーバー設定 > バックグラウンドジョブ でスケジュールして、毎日または希望の間隔で実行できます。 ステップ9 – ウェブフックの統合 ウェブフックを使用すると、特定のイベントが発生するたびに、back4appアプリが外部urlにデータを送信できます。新しいまたは更新されたオブジェクトデータを、stripeやslackなどの別のシステムに転送できます。 back4appダッシュボードの その他 > ウェブフック に移動します。 外部urlを指す新しいウェブフックを追加します。 (例:railsコントローラーのルート)。 ウェブフックをトリガーするイベントを指定します。 好みに応じて、beforesaveまたはaftersave関数内でhttpリクエストを行うことで、cloud codeからwebhookをトリガーすることもできます。 ステップ10 – back4app管理パネルの探索 「 back4app管理アプリ 」は、非技術的なチームやクライアントがback4appデータに対してcrud操作を行うためのユーザーフレンドリーな方法を提供します。このインターフェースは、基本的なタスクのために直接コードを変更したり、parse dashboardを使用する必要を排除します。 どこで見つけるか ダッシュボードから「 管理アプリを有効にする 」に移動し、「 管理アプリを有効にする 」をクリックすることで、管理アプリを有効にできます。 機能 有効にすると、次のことができます クエリを書くことなくデータを作成および管理する。 ログを監視し、バックグラウンドジョブをスケジュールし、プッシュ通知を処理する(有効な場合)。 チームメンバーに対して役割ベースのアクセスを提供し、安全な編集を実現する。 結論 おめでとうございます!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サーバーを迅速に開発、反復、スケールできます。コーディングを楽しんでください!