Xamarinのバックエンドを構築する方法は?
このチュートリアルでは、Back4Appの強力な機能を使用して、Xamarinモバイルアプリのバックエンドを構築する方法を学びます。
専用のSDKを使用する代わりに、Back4AppのREST API, GraphQL, およびその他のWeb APIオプションに依存します。このアプローチにより、あなたのモバイルクライアントは軽量で柔軟性があり、シンプルなHTTP呼び出しを通じてデータに接続できるようになります。
データベースモデルの作成、セキュリティの適用、認証の処理、ファイル操作の実行について説明します。
これらの手順に従うことで、Xamarinのバックエンドを迅速かつ安全に構築する方法がわかります。
自動化されたタスクのスケジューリングや、webhooksの統合を探求し、Xamarinアプリの機能を拡張することもできますので、サーバーの設定を調整するのではなく、UIのコーディングに集中できます。
このガイドを完了すると、mobile appsのバックエンドにBack4Appを利用するための再利用可能なテンプレートが得られます。
また、Access Control Lists(ACL)を適用し、必要に応じてCloud Codeを書き、最終的なソリューションにLive QueriesやCloud Jobsのような高度なワークフローを組み込む方法を理解することができます。
このチュートリアルを最大限に活用するために、次のものを用意してください:
- C#とXamarinの基本知識(C#のpublic classからWeb APIリクエストを行う方法を含む)。
これらの前提条件が整ったら、XamarinプロジェクトをBack4Appに接続して進める準備が整います。
- Back4App プロジェクトを作成する あなたの Back4App ダッシュボードで。これはあなたのバックエンドの基盤です。
- プロジェクトに名前を付ける (例えば、「Xamarin-Backend-Tutorial」)。
- アプリキーを見つける アプリの「セキュリティとキー」セクションに移動して。REST、GraphQL、またはモバイルクライアントからリクエストを行う際に使用する可能性のある他のキーが表示されます。
- Xamarin プロジェクトを構成する HTTP リクエストを行うために。Parse SDK の代わりに、あなたは HttpClient または好みのネットワークライブラリを使用して、Back4App アプリの REST または GraphQL エンドポイントを呼び出します。
例えば、あなたは アプリケーション ID と REST API キー を安全な場所または定数ファイルに保存できます:
「web api」を呼び出すときは、常にこれらの資格情報をリクエストヘッダーに含めてください。これにより、リクエストが必要な認証を持つ正しいアプリにルーティングされることが保証されます。
Back4Appのダッシュボードを使用してクラスを定義するか、最初のリクエスト時に動的に作成させます。たとえば、Todoクラスを作成したい場合は、Databaseセクションで作成するか、REST API呼び出しを介してその場で作成できます:
Back4Appは、完全なクラス構造を生成できるAIエージェントを提供しています:
- AIエージェントをあなたのBack4Appプロジェクトで開きます。
- モデルを説明します(例:「タイトルとisCompletedフィールドを持つ‘Todo’という新しいクラスを作成してください。」)。
- スキーマを自動的に生成するために確認します。
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/0snNZwHWzxuXlNu30n7IA_image.png?format=webp)
あなたの Xamarin プロジェクト内で、すべてのリクエストを Back4App に処理する public class (例えば、 RestClient) を作成できます:
GraphQL クエリの場合、Back4App GraphQL エンドポイントにリクエストを送信できます:
同様に、Xamarinから、GraphQL文字列を含むJSONボディをPOSTすることができます https://parseapi.back4app.com/graphql.
Parse SDKではなくWeb API呼び出しを使用している場合でも、リアルタイムデータ更新を希望する場合はライブクエリを有効にできます。クラスの変更にサブスクライブするために、専門的な接続(WebSocket)を使用します。 アプリの サーバー設定 からライブクエリを有効にし、Xamarinで利用可能な互換性のあるクライアントライブラリを使用します。あるいは、独自のWebSocketソリューションを構築するか、リアルタイムサポートがオプションの場合はポーリングに依存することもできます。
Back4Appのセキュリティには クラスレベルの権限 (CLP) と アクセス制御リスト (ACL) が含まれます。CLPは、どのユーザーまたはロールがクラス全体を読み書きできるかを定義します。ACLはオブジェクトごとのセキュリティを追加します。これらを組み合わせて、認可されたユーザーのみがデータを操作できるようにします。
- データベース セクションをBack4Appで開きます。
- クラスを選択 (Todoなど)します。
- クラスレベルの権限に移動して、読み書きのルールを設定します。認証されたユーザーのみが読み書きできるようにすることもできます。これにより、モバイルクライアントがデータを読み取る前にログインする必要があります。
クラウドコードを使用すると、カスタムサーバーサイドロジックを実行できます。ビジネスルール、バリデーション、またはデータが変更されたときに実行されるトリガーを作成できます。これにより、ロジックがモバイルクライアントの外部で実行されるため、改ざんのリスクが減ります。
以下は、 main.js ファイル内のクラウド関数の簡略化されたサンプルです:
デプロイするには、 Back4App CLI またはダッシュボードのクラウドコードセクションを使用できます。デプロイが完了したら、Xamarinから REST を介して関数を呼び出すことができます。
追加のライブラリが必要な場合は、Cloud Code プロジェクトフォルダー内で npm を使用してインストールします。その後、require を main.js に記述します。このアプローチは、サーバー側からサードパーティの API を呼び出すのに便利です。
Back4App では、_User クラスがユーザーの資格情報を管理します。アプリ設定, でユーザー認証、メール確認、パスワードリセットの設定を有効にできます。
Xamarin プロジェクトから、サインアップとログインを処理する C# メソッドを書くことができます:
その後、将来のリクエストのためにクライアント側にセッショントークンを保存できます。
ソーシャルログイン (例: Google, Facebook) を統合するには、Back4App ソーシャルログインのドキュメント を参照してください。各プロバイダーには独自の OAuth フローがあり、これを モバイルクライアント から処理できます。その後、返されたトークンを Back4App に渡します。
ファイルは、ボディにファイルデータを含むPOSTリクエストを送信することでアップロードできます。たとえば、Xamarinアプリから画像を保存するには、画像をバイト配列に読み込み、次のように送信します:
ファイルアップロードを安全にするには、Back4Appの サーバー設定に移動し、 ファイルの権限を調整します。たとえば、認証されたユーザーのみがアップロードできるようにすることができます。
メール確認は、ユーザーが登録したメールを所有していることを確認します。パスワードリセットリンクは、パスワードを忘れた場合に再度アクセスできるようにします。
- 「メール認証」を メール設定の下で有効にします。
- パスワードリセットテンプレートを 編集し、「From」アドレスを設定します。
- ブランドに合わせてメールの内容をカスタマイズすることもできます。
有効にすると、ユーザーがメールでサインアップすると、確認リンクが送信されます。パスワードリセットの呼び出しは、ユーザーのメールを使用してリセットメールをトリガーするために同じ基本APIに対して行われます。
クラウドジョブを使用すると、古いデータのクリーンアップや毎日のダイジェストメールの送信など、定期的なタスクをBack4Appプラットフォームからすべてスケジュールできます。
クラウドコードをデプロイし、次に アプリ設定 > サーバー設定 > バックグラウンドジョブ の下でジョブをスケジュールします。
- Back4Appでウェブフックを定義するには、 その他 > ウェブフック に移動し、「ウェブフックを追加」をクリックします。
- エンドポイントを提供します。例えば、 https://your-service.com/webhook-endpoint のようにします。
- トリガーを選択します。例えば、「Todoクラスの新しいオブジェクト」などです。
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/morUMdwsAbVQ1EmBfUfAA_image.png?format=webp)
Webhooksはサードパーティサービスに通知できるため、Xamarinアプリは軽量のままで、外部システムが追加のロジックや通知を処理できます。
「Back4App管理アプリ」は、クエリを書くことなくCRUD操作を処理するためのユーザーフレンドリーな方法です。App Dashboard > More > Admin Appで有効にします。管理ユーザーを作成し、サブドメインを選択してログインします。
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/jOFU8C0qiFm6wiVZXS9l0_image.png?format=webp)
この管理アプリは、データを管理する必要があるが、直接データベースにアクセスすべきでない非技術的なチームメンバーに最適です。
あなたは、Back4App APIを使用してXamarinのバックエンドを構築する方法を見てきました。安全なクラスを作成し、CLPとACLを追加し、認証を処理し、ファイルのアップロード、タスクのスケジューリング、外部サービスとの統合を探りました。このアプローチにより、あなたのモバイルアプリは、ホストされたデータベースとクラウド環境の力を活用しながら、迅速かつ柔軟に保たれます。
- Xamarinアプリケーションを拡張し、より複雑なロジック、キャッシング、または高度な役割と権限を処理します。
- 高度な機能に飛び込む、プッシュ通知など、または共同更新が必要な場合はLive Queriesでリアルタイムデータを統合します。
- 公式のBack4Appドキュメントを訪れる、セキュリティ、パフォーマンス、デバッグに関する詳細なガイドを得るために。
- 実世界のソリューションを作成する、サードパーティAPI(決済ゲートウェイ、分析、ソーシャルメディア)をBack4Appバックエンドと組み合わせます。この組み合わせにより、モバイルクライアントの機能が向上し、コードが整理されます。
![Doc contributor](https://s3.amazonaws.com/archbee-animals/cat.png)