クイックスターターズ

Elixirのバックエンドを構築する方法は?

37min

はじめに

このチュートリアルでは、 Elixirのバックエンドを構築する方法を学びます。

データベース管理、Cloud Code Functions、RESTおよびGraphQL API、ユーザー認証、リアルタイムクエリ(ライブクエリ)など、Back4Appの重要な機能を統合する方法を説明し、安全でスケーラブル、かつ堅牢なバックエンドを作成します。

Erlang VM(BEAM)上で動作し、OTP(Erlang OTP)を活用するElixirは、障害耐性があり、同時実行環境で知られており、Back4Appと組み合わせることで、現代的で高性能なインフラストラクチャを形成します。

Back4Appの迅速なセットアップと直感的な環境が、サーバーやデータベースを手動で構成するのに比べて、どれほど時間と労力を大幅に削減できるかを確認します。

これには、パターンマッチングを活用し、Elixirの選択したWebフレームワークにフックすることが含まれます。

このチュートリアルの終わりまでには、プロダクション準備が整ったアプリケーションに拡張したり、カスタムロジックやサードパーティAPIで強化したりできる堅実な基盤を持つことができます。

前提条件

このチュートリアルを完了するには、次のものが必要です:

  • Back4Appアカウントと新しいBack4Appプロジェクト Back4appの始め方。 アカウントを持っていない場合は、無料で作成できます。上記のガイドに従ってプロジェクトを準備してください。
  • 基本的なElixir開発環境 マシンにElixirがインストールされていることを確認してください。PhoenixなどのWebフレームワークを使用する予定がある場合は、Phoenixインストールガイドを参照してください。
  • Elixirの概念に対する理解 Elixir公式ドキュメント。 Elixirが初めての場合は、これらのリソースや初心者向けのチュートリアルを確認してから始めてください。

始める前に、これらの前提条件がすべて整っていることを確認してください。Back4Appプロジェクトを設定し、ローカルのElixir環境を準備しておくことで、スムーズに進めることができます。

ステップ1 – Back4Appで新しいプロジェクトを作成し、接続する

新しいプロジェクトを作成する

Back4AppでのElixirのバックエンドを構築する方法の最初のステップは、新しいプロジェクトを作成することです。まだ作成していない場合は、次の手順に従ってください:

  1. Back4appアカウントにログインする
  2. Back4Appダッシュボードで「新しいアプリ」ボタンをクリックする
  3. アプリに名前を付ける(例:「Elixir-Backend-Tutorial」)。
Document image


プロジェクトが作成されると、Back4Appダッシュボードにリストされているのが見えます。このプロジェクトは、このチュートリアルで説明するすべてのバックエンド設定の基盤となります。

RESTまたはGraphQLを介して接続する

Back4AppはParseプラットフォームを基盤として使用しています。Elixir用の公式Parse SDKは現在ありません。その代わりに、RESTまたはGraphQL APIを使用してBack4Appに簡単に接続できます。Elixirプロジェクトでは、あなたは:

  1. アプリの「アプリ設定」または「セキュリティとキー」セクションから、アプリケーションIDRESTまたはGraphQLキーを取得します。
  2. 次に、HTTPoisonTeslaなどのElixirライブラリを使用してHTTPリクエストを構成します。

たとえば、設定ファイルに資格情報を保存するには(config/dev.exsまたは同様のもの):

Text


その後、これらの資格情報をコード内で参照してREST呼び出しを行うことができます。このガイド全体を通じて、標準のHTTPまたはGraphQLリクエストを使用してBack4Appデータベース、ユーザーシステム、およびその他の機能と対話する方法を紹介します。

ステップ2 – データベースの設定

データモデルの作成

Back4Appでは、データは クラス. Back4Appダッシュボードで新しいクラスを作成できます:

  1. 「データベース」セクションに移動して、Back4Appダッシュボードで。
  2. 新しいクラスを作成(例:「Todo」)し、タイトル(String)やisCompleted(Boolean)などの関連するカラムを追加します。
新しいクラスを作成
新しいクラスを作成


AIエージェントを使用したデータモデルの作成

Back4Appは、データモデルを説明し作成するのを助けるAIエージェントも提供しています:

  1. AIエージェントを開く アプリダッシュボードまたはメニューから。
  2. データモデルを説明する 簡単な言葉で(例:「新しいTodoアプリを完全なクラススキーマで作成してください。」)。
  3. AIエージェントにスキーマを自動的に作成させる
Document image


SDKを使用したデータの読み取りと書き込み(該当する場合)

Elixirには公式のParse SDKがないため、直接のSDK使用はスキップします。代わりに、以下に REST, GraphQL, および Live Queries アプローチを示します。

REST APIを使用したデータの読み取りと書き込み

HTTPクライアントをインストールします。例えば、 HTTPoisonmix.exs に追加します。

Text


次に、 mix deps.get を実行します。

ElixirアプリケーションからTodoオブジェクトを作成(保存)するには:

Text


そして、あなたのTodoオブジェクトをクエリするには:

Text


GraphQL APIを使用したデータの読み書き

GraphQLを介しても対話できます。例えば、Todoを作成するには:

GraphQL


Elixirでは、これをHTTPクライアントで送信することもできます:

Text


ライブクエリの操作(オプション)

リアルタイムの更新のために、Back4Appは ライブクエリ を提供しています。アプリの サーバー設定 でライブクエリを有効にできます。現在、ネイティブのElixir Parseクライアントライブラリはないため、通常はPhoenixチャネルまたは提供された wss://YOUR_SUBDOMAIN_HERE.b4a.io エンドポイントにカスタムWebSocketクライアントを介して接続します。これはより高度なもので、サブスクリプション、メッセージなどを処理するためのカスタムコーディングが必要です。

ステップ3 – ACLとCLPによるセキュリティの適用

簡単な概要

Back4Appは アクセス制御リスト(ACL)クラスレベルの権限(CLP) を提供して、データアクセスを保護および管理します。ACLは個々のオブジェクトに適用され、CLPはクラス全体に適用されます。

Document image


ステップバイステップ

  1. クラスレベルの権限 (CLPs): あなたの Back4App ダッシュボードで、データベースを選択し(例: “Todo”)、クラスレベルの権限 タブを開きます。設定を調整します(例: “認証が必要” または “公開に対するアクセスなし”)。
  2. ACLの設定: オブジェクトを作成または更新する際に、REST または GraphQL リクエストで ACL データを送信できます。たとえば、細かいオブジェクトごとの制御が必要な場合は、JSON で _ACL フィールドを指定します。
ACLを編集
ACLを編集


詳細については、アプリセキュリティガイドラインをご覧ください。

ステップ 4 – クラウドコード関数の作成

クラウドコードの理由

クラウドコードを使用すると、自分のサーバーを管理することなくサーバーサイドのロジックを実行できます。Elixirでは、通常はOTPに依存して並行処理を行いますが、ここではBack4AppでJavaScriptクラウドコードを作成して、バリデーション、トリガー、またはカスタムビジネスロジックを処理できます。このコードはParse Server上で実行されるため、Elixirコードをクライアントまたはマイクロサービスのタスクに集中させることができ、重い処理はクラウドコードで行われます。

例の関数

あなたの main.js をBack4AppダッシュボードまたはCLIを使用して:

JS


デプロイメント

次の方法でデプロイします: Back4app CLI またはダッシュボードの Cloud Code > Functions に貼り付けて Deploy をクリックします。

Document image


クラウドコードの呼び出し

Elixirから、次のように使用できます:

Text


ステップ 5 – 認証の設定

認証の有効化または設定

Back4Appは、認証のためにParse Userクラスを使用します。サインアップ、ログイン、パスワードリセットを簡単に管理できます。Elixirからは、通常REST呼び出しを使用します:

Text


ソーシャルログイン

Back4Appは、Google、Apple、Facebookなどとの統合をサポートしています。ほとんどの場合、ユーザーをOAuthフローに誘導し、これらのプロバイダーから返されたトークンを使用してParseログインを完了します。詳細については、ソーシャルログインドキュメントを参照してください。

ステップ 6 – ファイルストレージの処理

ファイルストレージの設定

Back4Appはファイルを安全に保存します。Elixirからは、RESTを介してファイルをアップロードします:

Text


ファイルのURLを含むJSONレスポンスを受け取ります。これは、参照用にクラス(例: Photo)に保存できます。

セキュリティに関する考慮事項

ファイルのアップロードを許可するユーザーを設定するには、Back4Appプロジェクトの fileUpload 設定を構成できます。必要に応じて、認証されたユーザーのみにアップロードを制限できます。

ステップ7 – メール確認とパスワードリセット

概要

メール認証は、ユーザーがサインアップ時に使用したメールアドレスを所有していることを確認します。パスワードリセットは、ユーザーが安全にアカウントを回復できるようにします。これらの機能は、Back4Appに組み込まれています。

Back4Appダッシュボードの設定

  1. メール認証を有効にする あなたのアプリの「アプリ設定」または「認証」の下で。
  2. Fromアドレス」とメールテンプレートを設定します。
  3. パスワードリセットを有効にする ユーザーがメールで送信されたリンクを介してリセットできるようにします。

コード/実装

ダッシュボードで有効にすると、パスワードリセットをトリガーできます:

Text


ステップ8 – クラウドジョブを使用したタスクのスケジューリング

クラウドジョブの機能

クラウドジョブを使用すると、古いデータのクリーンアップや定期的なメールの送信などのルーチン作業を自動化できます。これらはCloud Codeで記述します。

JS

  1. コードをデプロイします。
  2. Back4appダッシュボードに移動します。 > アプリ設定 > サーバー設定 > バックグラウンドジョブ.
  3. ジョブをスケジュールします。 毎日または選択した頻度で実行されるようにします。
クラウドジョブのスケジューリング
クラウドジョブのスケジューリング


ステップ9 – ウェブフックの統合

定義

Webhooksを使用すると、特定のイベントが発生したときに、Back4Appアプリケーションが外部サービス(例:SlackチャンネルやStripe)にHTTPリクエストを送信できます。

設定

  1. Webhooksの設定に移動し、Back4Appダッシュボード > その他 > Webhooksを選択します。
  2. エンドポイントを設定します(例えば、https://your-service.com/webhook-endpoint)。
  3. トリガーを設定します。「Todoクラスに新しいレコードが追加されたとき」など。
Webhookの追加
Webhookの追加


Todoが作成されるたびにSlackにデータを送信したい場合は、Slackの受信Webhook URLを指す新しいWebhookを追加できます。また、トリガー内でカスタムHTTPリクエストを送信することで、Cloud CodeでWebhookを定義することもできます。例えば、afterSaveのように。

BeforeSave WebHook
BeforeSave WebHook


ステップ10 – Back4App管理パネルの探索

どこで見つけるか

Back4app管理アプリ」は、データを管理するためのユーザーフレンドリーなインターフェースです。これを「アプリダッシュボード > その他 > 管理アプリ」から有効にできます。

管理アプリを有効にする
管理アプリを有効にする


機能

  1. 最初の管理ユーザーを作成する, これによりB4aAdminUserロールと追加のクラスが設定されます。
  2. サブドメインを割り当てることで、管理インターフェースにアクセスします。
  3. ログインすることで、シンプルなインターフェースでデータを表示および管理します。
Document image


結論

このチュートリアルに従って、Back4Appを使用してElixirのバックエンドを構築することで、あなたは:

  • 安全なバックエンド 構造をBack4Appのプラットフォーム上でElixirを使用して統合しました。
  • データベースを設定しました クラス、データ型、関係を持つ。
  • REST/GraphQLを使用しました Elixirからデータと対話するために。
  • セキュリティを適用しました ACLとCLPを使用して。
  • カスタムロジックを追加しました Cloud Code関数を使用して。
  • ユーザー認証を設定しました メール確認とパスワードリセットを使用して。
  • ファイルストレージを処理しました および取得。
  • バックグラウンドジョブをスケジュールしました 自動化のために。
  • 外部サービスを統合しました ウェブフックを使用して。
  • Back4App管理パネルを探索しました 簡単なデータ管理のために。

Elixirの並行性モデル(Erlang VMによって動かされる)とOTP、Back4Appのスケーラブルで柔軟なサービスを組み合わせることで、高度に堅牢なバックエンドを構築できます。

さらに高度な機能を探索し、ビジネスロジックを統合し、Back4Appに重い作業を処理させましょう。

次のステップ

  • 本番環境向けのElixirアプリを構築する このバックエンドをお好みのElixir/Phoenixウェブフレームワークと組み合わせて。
  • 高度な機能を統合する 役割ベースのアクセス制御やサードパーティAPI(決済ゲートウェイ、メッセージングサービス)など。
  • Back4appの公式ドキュメントを探る 高度なセキュリティ、ログ、パフォーマンスチューニングなどについて。
  • 他のチュートリアルをチェックする リアルタイムアプリ、IoTダッシュボード、または位置情報サービスのために。パターンマッチングとOTPの同時実行を駆使すれば、幅広いアプリケーションに対応できます!