Quickstarters
Feature Overview

How to Build a Backend for Golang?

31min

はじめに

このチュートリアルでは、Back4Appを使用してGolangの完全なバックエンドを構築し、テストする方法を学びます。

データベース管理、セキュリティ設定、ユーザー認証、ファイルストレージ、Cloud Codeなど、Back4Appの重要な機能を統合する方法を説明し、Go httpサーバーと連携する安全で柔軟、かつスケーラブルなバックエンドを作成します。

私たちは、専用のParse SDKではなく、Golang httpクライアントからデータベースに接続するためにBack4AppのRESTful APIを使用することに焦点を当て、あなたの新しいバックエンドのためのメンテナンスが容易なハンドラ関数を構築する方法を示します。

このアプローチが、ゼロから自分のサーバーを設定することと比較して、開発の複雑さをどのように軽減するかを見ることができます。

Back4Appのリアルタイムクエリ、ファイルストレージ、ユーザー認証システムに依存することで、バックエンドの作成プロセスを加速させることができます。

最後には、安全なGolangバックエンドを構築し、自動化されたタスクをスケジュールし、外部Webhookを統合する方法を知ることができます。

この基盤を生産準備が整ったアプリケーションに拡張したり、必要に応じてカスタムロジックを追加するための準備が整います。

前提条件

  • Back4Appアカウント 無料でサインアップする こちら.
  • 新しいBack4Appプロジェクト Back4appの始め方
  • Go (Golang) 開発環境 マシンにGoがインストールされていることを確認してください。インストラクションは Go公式ドキュメント で見つけることができます。
  • GoのhttpパッケージとRESTful APIの基本知識 funcハンドラーの書き方、エラーメッセージの解析、メソッドPOSTリクエストの処理、httpローカルホストサーバーの設定に慣れていると役立ちます。

進む前にこれらの前提条件を整えておいてください。この設定は、Back4Appを使用してGolangのバックエンドを構築する方法を発見する際に、あなたの体験をスムーズにします。

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

新しいプロジェクトの理由は?

新しいBack4Appプロジェクトを作成することが最初のステップです。ここでデータを保存し、ファイルストレージを構成し、クラウド関数をスケジュールし、バックグラウンドタスクを追加します。このバックエンドプロジェクトは、すべての後続のステップの基盤となります。

  1. Back4Appアカウントにログイン.
  2. 「新しいアプリ」をクリック あなたのBack4Appダッシュボードで。
  3. アプリの名前を付ける (例えば、「Golang-Backend-Tutorial」)。
Document image


作成されると、ダッシュボードに表示されます。このアプリケーションは、あなたのBack4Appベースのバックエンドです。

REST APIを介して接続する

Back4Appは、データを作成、更新、削除するためのRESTful APIを提供します。Golangでは、Goの標準ライブラリからのhttpクライアントを使用して、これらのエンドポイントと通信します。

アプリケーションID」と「REST APIキー」を見つけるには、あなたのBack4Appアプリの「設定」または「セキュリティとキー」セクションに移動します:

Document image


各リクエストヘッダーにこれらの認証情報が必要です。次のステップで、POSTメソッド、GET、およびその他のHTTPリクエストを使用してデータベースに接続する際にこれを示します。

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

データモデルの作成

Back4Appにデータを保存するには、クラス(テーブル)とカラム(フィールド)を定義します。例えば、「Todo」クラスを作成したいとしましょう。Back4Appダッシュボードで手動で作成できます:

  1. アプリのダッシュボードの「データベース」セクションに移動します。
  2. 「Todo」という名前の新しいクラスを作成します。
  3. タイトル(String)やisCompleted(Boolean)などのカラムを追加します。
新しいクラスを作成
新しいクラスを作成


Golangアプリケーションから新しいフィールドを持つオブジェクトを送信することで、システムにカラムを自動作成させることもできます。

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

  1. AIエージェントを アプリダッシュボードで開きます。
  2. 希望するデータモデルを説明します(例:「タイトルフィールドとisCompletedフィールドを持つ新しいTodoクラスを作成してください。」)。
  3. 提案されたスキーマを 受け入れます。
Document image


この便利な機能は、データベーススキーマの設計にかかる時間を節約します。

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

以下は、Goのhttpパッケージを使用してデータを作成(POSTメソッド)および取得(GETメソッド)する基本的な例です。あなたのAPPLICATION_IDREST_API_KEYを環境変数として持っていると仮定します。

Go


これらの例では、httpクライアントを作成し、必要なヘッダーを追加し、レスポンスコードとエラーメッセージを処理します。 YOUR_APPLICATION_IDYOUR_REST_API_KEY をあなたのBack4Appプロジェクトからの実際のキーに置き換えることを忘れないでください。

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

Back4Appはまた、 https://parseapi.back4app.com/graphql にGraphQLエンドポイントを提供しています。人気のあるGo GraphQLクライアントライブラリ(例えば、Machine Box graphql)を使用してクエリやミューテーションを実行できます。これは、生のREST呼び出しよりも構造化されたアプローチになる可能性があります。

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

アプリでリアルタイムの更新を見たい場合は、Back4Appダッシュボードでライブクエリを有効にできます。Golangには公式のParseライブクエリライブラリはありません。しかし、 wss://YOUR_SUBDOMAIN.b4a.io からのライブクエリの更新をリッスンするために独自のウェブソケット接続を実装できます。この機能は、即時データ同期を必要とする共同作業アプリに役立ちます。

ステップ3 – ACLとCLPを使用したセキュリティの適用

概要

Back4Appは、データを保護するためにアクセス制御リスト(ACL)とクラスレベルの権限(CLP)を提供します。ACLは各オブジェクトに定義され、CLPはクラス全体の包括的なルールを定義します。

Document image


クラスレベルの権限

  1. アプリの データベース ビューに移動します。
  2. クラスを選択します(例: Todo)。
  3. クラスレベルの権限」をクリックし、異なるユーザー役割または公開アクセスのために読み取り/書き込みアクセスを設定します。
Document image


ACL

オブジェクトを作成または更新する際にACLを渡すことができます。これにより、特定のユーザーまたは役割のみがデータを読み書きできることが保証されます。詳細については、アプリセキュリティガイドラインをご覧ください。

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

クラウドコードの利点

クラウドコードを使用すると、サーバー側の関数、トリガー、または検証を実行できます。自分のサーバーを管理することなく、サーバー側から高度なビジネスロジックを追加したり、外部APIを統合したりできます。

クラウド関数の例

簡単な例は、テキストの長さを計算する関数です。Back4Appダッシュボードの main.js ファイルに次のように記述します。

JS


デプロイメント

Cloud Codeをデプロイするには、次のいずれかを使用します:

  • Back4App CLI:
  • Back4App DashboardCloud Code > Functions. コードを main.js エディタに貼り付けて、 Deploy をクリックします。
Document image


GolangからCloud Functionsを呼び出す

httpクライアントからREST経由でCloud Functionを呼び出すことができます:

Go


ステップ 5 – 認証の設定

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

Back4Appは、Userクラスを認証に使用します。RESTを介して新しいユーザーを作成すると、バックエンドは資格情報を安全に保存し、セッショントークンを生成します。

Bash


返されたセッショントークンを使用して、ユーザー権限が必要な後続のリクエストを行います。Goでは、前述のようにhttpクライアントから同じタイプのHTTPリクエストを送信します。

ソーシャルログイン

GoogleやFacebookなどのソーシャルログインには、Back4AppでOAuth設定を構成する必要があります。これらのフローは、トークンの交換を伴うことがよくあります。詳細については、Appleでサインイン / ソーシャルログインのドキュメントを参照してください。

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

セットアップとアップロード

ファイルをbase64エンコードされたデータまたはmultipart/form-dataとして送信することで、Back4Appにファイルを保存できます。

Bash


アップロード後、返されたファイルURLまたはファイルポインタを保存することで、オブジェクトにファイルを添付できます。Goでは、同様の方法でhttpリクエストを作成します—ファイルコンテンツを適切にエンコードすることを確認してください。

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

重要性

メール確認は、ユーザーが提供したメールを制御していることを保証し、パスワードリセットはアカウントの回復を助けます。両方の機能はセキュリティと信頼を高めます。

メール確認の有効化

  1. あなたの Back4App ダッシュボード に移動します。
  2. メール設定」の下で、確認メールを有効にします。
  3. 必要に応じて、メールテンプレートをカスタマイズします。

ユーザーがサインアップすると、確認メールが自動的に送信されます。

パスワードリセット

パスワードリセットを開始するには、requestPasswordReset REST エンドポイントを使用します:

Bash

Bash

Bash


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

クラウドジョブの機能

クラウドジョブは、古いデータのクリーンアップや週刊ニュースレターの送信などのタスクを自動化するためにスケジュールに従って実行されます。

JS


このジョブをデプロイし、あなたの Back4App ダッシュボード > アプリ設定 > サーバー設定 > バックグラウンドジョブ でスケジュールします。

Document image


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

ウェブフックの利点

ウェブフックを使用すると、特定のイベントが発生したときに外部サービスに通知できます。たとえば、新しいTodoアイテムが作成されたときにSlackアラートを送信することができます。

  1. Back4App ダッシュボードの ウェブフック セクションに移動します。
  2. エンドポイントを設定します (例えば、https://your-external-service.com/webhook)。
  3. トリガーを割り当てます (例:afterSave のTodo)。
ウェブフックの追加
ウェブフックの追加


イベントの直接制御を好む場合は、httpクライアントリクエストを記述することでクラウドコードから外部APIをトリガーすることもできます。

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

概要

Back4App管理アプリは、データを管理するために非技術的なチームメンバーと共有できるポイント&クリックインターフェースです。

管理アプリを有効にする

  1. Back4Appダッシュボードの More > Admin App に移動します。
  2. それを有効にし、管理ユーザーを作成します。
管理アプリを有効にする
管理アプリを有効にする


選択したサブドメインを使用して、データ操作のためのシンプルなUIにログインします。これにより、基本的な操作を実行するために直接クエリやカスタムコードを書く必要がなくなります。

結論

このガイドでは、Back4Appを使用してGolangのバックエンドを構築する方法を学びました。

RESTful APIを介してデータベースに接続し、ACLとCLPでセキュリティ対策を適用し、Cloud Jobsでスケジュールされたタスクを実行し、Webhookを使用して外部サービスと統合し、ユーザー認証とファイルストレージを設定する方法を探りました。

GoのhttpパッケージとBack4Appの強力な機能を使用して、時間を節約し、スケールしやすい強力なバックエンドを作成できます。

基本をマスターしたので、Golangハンドラ関数のロジックを拡張し、新しいAPIエンドポイントに接続し、ニーズに合ったリッチなアプリケーションを構築できます。

次のステップ

  • Golangアプリを洗練させる: ロールベースのアクセスなどの高度な機能を追加するか、プロダクション用にhttpサーバーを最適化します。
  • リアルタイムクエリについてもっと学ぶ: コラボレーティブアプリのためにLive Queriesを統合します。
  • 高度なBack4Appドキュメントを探る: ACL、ログ、分析を微調整します。
  • サードパーティAPIを統合する: Cloud Codeまたは直接Webhookを使用してバックエンド機能を拡張します。