Quickstarters

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

28min

はじめに

このチュートリアルでは、Back4Appの強力な機能を使用して、Xamarinモバイルアプリのバックエンドを構築する方法を学びます。

専用のSDKを使用する代わりに、Back4AppのREST API, GraphQL, およびその他のWeb APIオプションに依存します。このアプローチにより、あなたのモバイルクライアントは軽量で柔軟性があり、シンプルなHTTP呼び出しを通じてデータに接続できるようになります。

データベースモデルの作成、セキュリティの適用、認証の処理、ファイル操作の実行について説明します。

これらの手順に従うことで、Xamarinのバックエンドを迅速かつ安全に構築する方法がわかります。

自動化されたタスクのスケジューリングや、webhooksの統合を探求し、Xamarinアプリの機能を拡張することもできますので、サーバーの設定を調整するのではなく、UIのコーディングに集中できます。

このガイドを完了すると、mobile appsのバックエンドにBack4Appを利用するための再利用可能なテンプレートが得られます。

また、Access Control Lists(ACL)を適用し、必要に応じてCloud Codeを書き、最終的なソリューションにLive QueriesCloud Jobsのような高度なワークフローを組み込む方法を理解することができます。

前提条件

このチュートリアルを最大限に活用するために、次のものを用意してください:

これらの前提条件が整ったら、XamarinプロジェクトをBack4Appに接続して進める準備が整います。

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

  1. Back4App プロジェクトを作成する あなたの Back4App ダッシュボードで。これはあなたのバックエンドの基盤です。
  2. プロジェクトに名前を付ける (例えば、「Xamarin-Backend-Tutorial」)。
  3. アプリキーを見つける アプリの「セキュリティとキー」セクションに移動して。REST、GraphQL、またはモバイルクライアントからリクエストを行う際に使用する可能性のある他のキーが表示されます。
  4. Xamarin プロジェクトを構成する HTTP リクエストを行うために。Parse SDK の代わりに、あなたは HttpClient または好みのネットワークライブラリを使用して、Back4App アプリの REST または GraphQL エンドポイントを呼び出します。

例えば、あなたは アプリケーション IDREST API キー を安全な場所または定数ファイルに保存できます:

C#


web api」を呼び出すときは、常にこれらの資格情報をリクエストヘッダーに含めてください。これにより、リクエストが必要な認証を持つ正しいアプリにルーティングされることが保証されます。

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

1. データモデルの作成

Back4Appのダッシュボードを使用してクラスを定義するか、最初のリクエスト時に動的に作成させます。たとえば、Todoクラスを作成したい場合は、Databaseセクションで作成するか、REST API呼び出しを介してその場で作成できます:

Bash


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

Back4Appは、完全なクラス構造を生成できるAIエージェントを提供しています:

  1. AIエージェントをあなたのBack4Appプロジェクトで開きます。
  2. モデルを説明します(例:「タイトルとisCompletedフィールドを持つ‘Todo’という新しいクラスを作成してください。」)。
  3. スキーマを自動的に生成するために確認します。
Document image


3. データの読み取りと書き込み (REST)

あなたの Xamarin プロジェクト内で、すべてのリクエストを Back4App に処理する public class (例えば、 RestClient) を作成できます:

C#


4. データの読み取りと書き込み (GraphQL)

GraphQL クエリの場合、Back4App GraphQL エンドポイントにリクエストを送信できます:

Bash


同様に、Xamarinから、GraphQL文字列を含むJSONボディをPOSTすることができます https://parseapi.back4app.com/graphql.

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

Parse SDKではなくWeb API呼び出しを使用している場合でも、リアルタイムデータ更新を希望する場合はライブクエリを有効にできます。クラスの変更にサブスクライブするために、専門的な接続(WebSocket)を使用します。 アプリの サーバー設定 からライブクエリを有効にし、Xamarinで利用可能な互換性のあるクライアントライブラリを使用します。あるいは、独自のWebSocketソリューションを構築するか、リアルタイムサポートがオプションの場合はポーリングに依存することもできます。

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

1. ACLとCLPの概要

Back4Appのセキュリティには クラスレベルの権限 (CLP)アクセス制御リスト (ACL) が含まれます。CLPは、どのユーザーまたはロールがクラス全体を読み書きできるかを定義します。ACLはオブジェクトごとのセキュリティを追加します。これらを組み合わせて、認可されたユーザーのみがデータを操作できるようにします。

2. クラスレベルの権限の設定

  1. データベース セクションをBack4Appで開きます。
  2. クラスを選択 (Todoなど)します。
  3. クラスレベルの権限に移動して、読み書きのルールを設定します。認証されたユーザーのみが読み書きできるようにすることもできます。これにより、モバイルクライアントがデータを読み取る前にログインする必要があります。

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

1. クラウドコードの理由

クラウドコードを使用すると、カスタムサーバーサイドロジックを実行できます。ビジネスルール、バリデーション、またはデータが変更されたときに実行されるトリガーを作成できます。これにより、ロジックがモバイルクライアントの外部で実行されるため、改ざんのリスクが減ります。

2. 例の関数とトリガー

以下は、 main.js ファイル内のクラウド関数の簡略化されたサンプルです:

JS


3. デプロイ

デプロイするには、 Back4App CLI またはダッシュボードのクラウドコードセクションを使用できます。デプロイが完了したら、Xamarinから REST を介して関数を呼び出すことができます。

Bash


4. NPM モジュール

追加のライブラリが必要な場合は、Cloud Code プロジェクトフォルダー内で npm を使用してインストールします。その後、requiremain.js に記述します。このアプローチは、サーバー側からサードパーティの API を呼び出すのに便利です。

ステップ 5 – 認証の設定

1. ユーザー認証を有効にする

Back4App では、_User クラスがユーザーの資格情報を管理します。アプリ設定, でユーザー認証、メール確認、パスワードリセットの設定を有効にできます。

2. ユーザーサインアップ / ログイン (REST)

Xamarin プロジェクトから、サインアップとログインを処理する C# メソッドを書くことができます:

C#


その後、将来のリクエストのためにクライアント側にセッショントークンを保存できます。

3. ソーシャルログイン

ソーシャルログイン (例: Google, Facebook) を統合するには、Back4App ソーシャルログインのドキュメント を参照してください。各プロバイダーには独自の OAuth フローがあり、これを モバイルクライアント から処理できます。その後、返されたトークンを Back4App に渡します。

ステップ 6 – ファイルストレージの取り扱い

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

ファイルは、ボディにファイルデータを含むPOSTリクエストを送信することでアップロードできます。たとえば、Xamarinアプリから画像を保存するには、画像をバイト配列に読み込み、次のように送信します:

Bash


2. C#によるアップロードの例

C#


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

ファイルアップロードを安全にするには、Back4Appの サーバー設定に移動し、 ファイルの権限を調整します。たとえば、認証されたユーザーのみがアップロードできるようにすることができます。

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

1. 概要

メール確認は、ユーザーが登録したメールを所有していることを確認します。パスワードリセットリンクは、パスワードを忘れた場合に再度アクセスできるようにします。

2. Back4App ダッシュボードの設定

  1. メール認証」を メール設定の下で有効にします。
  2. パスワードリセットテンプレートを 編集し、「From」アドレスを設定します。
  3. ブランドに合わせてメールの内容をカスタマイズすることもできます。

3. 実装

有効にすると、ユーザーがメールでサインアップすると、確認リンクが送信されます。パスワードリセットの呼び出しは、ユーザーのメールを使用してリセットメールをトリガーするために同じ基本APIに対して行われます。

ステップ 8 – クラウドジョブによるタスクのスケジューリング

1. クラウドジョブの機能

クラウドジョブを使用すると、古いデータのクリーンアップや毎日のダイジェストメールの送信など、定期的なタスクをBack4Appプラットフォームからすべてスケジュールできます。

2. 例

JS


クラウドコードをデプロイし、次に アプリ設定 > サーバー設定 > バックグラウンドジョブ の下でジョブをスケジュールします。

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

  1. Back4Appでウェブフックを定義するには、 その他 > ウェブフック に移動し、「ウェブフックを追加」をクリックします。
  2. エンドポイントを提供します。例えば、 https://your-service.com/webhook-endpoint のようにします。
  3. トリガーを選択します。例えば、「Todoクラスの新しいオブジェクト」などです。
Document image


Webhooksはサードパーティサービスに通知できるため、Xamarinアプリは軽量のままで、外部システムが追加のロジックや通知を処理できます。

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

Back4App管理アプリ」は、クエリを書くことなくCRUD操作を処理するためのユーザーフレンドリーな方法です。App Dashboard > More > Admin Appで有効にします。管理ユーザーを作成し、サブドメインを選択してログインします。

Document image


この管理アプリは、データを管理する必要があるが、直接データベースにアクセスすべきでない非技術的なチームメンバーに最適です。

結論

あなたは、Back4App APIを使用してXamarinのバックエンドを構築する方法を見てきました。安全なクラスを作成し、CLPACLを追加し、認証を処理し、ファイルのアップロード、タスクのスケジューリング、外部サービスとの統合を探りました。このアプローチにより、あなたのモバイルアプリは、ホストされたデータベースとクラウド環境の力を活用しながら、迅速かつ柔軟に保たれます。

次のステップ

  • Xamarinアプリケーションを拡張し、より複雑なロジック、キャッシング、または高度な役割と権限を処理します。
  • 高度な機能に飛び込む、プッシュ通知など、または共同更新が必要な場合はLive Queriesでリアルタイムデータを統合します。
  • 公式のBack4Appドキュメントを訪れる、セキュリティ、パフォーマンス、デバッグに関する詳細なガイドを得るために。
  • 実世界のソリューションを作成する、サードパーティAPI(決済ゲートウェイ、分析、ソーシャルメディア)をBack4Appバックエンドと組み合わせます。この組み合わせにより、モバイルクライアントの機能が向上し、コードが整理されます。