How to Build a Backend for Golang?
このチュートリアルでは、Back4Appを使用してGolangの完全なバックエンドを構築し、テストする方法を学びます。
データベース管理、セキュリティ設定、ユーザー認証、ファイルストレージ、Cloud Codeなど、Back4Appの重要な機能を統合する方法を説明し、Go httpサーバーと連携する安全で柔軟、かつスケーラブルなバックエンドを作成します。
私たちは、専用のParse SDKではなく、Golang httpクライアントからデータベースに接続するためにBack4AppのRESTful APIを使用することに焦点を当て、あなたの新しいバックエンドのためのメンテナンスが容易なハンドラ関数を構築する方法を示します。
このアプローチが、ゼロから自分のサーバーを設定することと比較して、開発の複雑さをどのように軽減するかを見ることができます。
Back4Appのリアルタイムクエリ、ファイルストレージ、ユーザー認証システムに依存することで、バックエンドの作成プロセスを加速させることができます。
最後には、安全なGolangバックエンドを構築し、自動化されたタスクをスケジュールし、外部Webhookを統合する方法を知ることができます。
この基盤を生産準備が整ったアプリケーションに拡張したり、必要に応じてカスタムロジックを追加するための準備が整います。
- GoのhttpパッケージとRESTful APIの基本知識 funcハンドラーの書き方、エラーメッセージの解析、メソッドPOSTリクエストの処理、httpローカルホストサーバーの設定に慣れていると役立ちます。
進む前にこれらの前提条件を整えておいてください。この設定は、Back4Appを使用してGolangのバックエンドを構築する方法を発見する際に、あなたの体験をスムーズにします。
新しいBack4Appプロジェクトを作成することが最初のステップです。ここでデータを保存し、ファイルストレージを構成し、クラウド関数をスケジュールし、バックグラウンドタスクを追加します。このバックエンドプロジェクトは、すべての後続のステップの基盤となります。
- Back4Appアカウントにログイン.
- 「新しいアプリ」をクリック あなたのBack4Appダッシュボードで。
- アプリの名前を付ける (例えば、「Golang-Backend-Tutorial」)。

作成されると、ダッシュボードに表示されます。このアプリケーションは、あなたのBack4Appベースのバックエンドです。
Back4Appは、データを作成、更新、削除するためのRESTful APIを提供します。Golangでは、Goの標準ライブラリからのhttpクライアントを使用して、これらのエンドポイントと通信します。
「アプリケーションID」と「REST APIキー」を見つけるには、あなたのBack4Appアプリの「設定」または「セキュリティとキー」セクションに移動します:

各リクエストヘッダーにこれらの認証情報が必要です。次のステップで、POSTメソッド、GET、およびその他のHTTPリクエストを使用してデータベースに接続する際にこれを示します。
Back4Appにデータを保存するには、クラス(テーブル)とカラム(フィールド)を定義します。例えば、「Todo」クラスを作成したいとしましょう。Back4Appダッシュボードで手動で作成できます:
- アプリのダッシュボードの「データベース」セクションに移動します。
- 「Todo」という名前の新しいクラスを作成します。
- タイトル(String)やisCompleted(Boolean)などのカラムを追加します。

Golangアプリケーションから新しいフィールドを持つオブジェクトを送信することで、システムにカラムを自動作成させることもできます。
- AIエージェントを アプリダッシュボードで開きます。
- 希望するデータモデルを説明します(例:「タイトルフィールドとisCompletedフィールドを持つ新しいTodoクラスを作成してください。」)。
- 提案されたスキーマを 受け入れます。

この便利な機能は、データベーススキーマの設計にかかる時間を節約します。
以下は、Goのhttpパッケージを使用してデータを作成(POSTメソッド)および取得(GETメソッド)する基本的な例です。あなたのAPPLICATION_IDとREST_API_KEYを環境変数として持っていると仮定します。
これらの例では、httpクライアントを作成し、必要なヘッダーを追加し、レスポンスコードとエラーメッセージを処理します。 YOUR_APPLICATION_ID と YOUR_REST_API_KEY をあなたのBack4Appプロジェクトからの実際のキーに置き換えることを忘れないでください。
Back4Appはまた、 https://parseapi.back4app.com/graphql にGraphQLエンドポイントを提供しています。人気のあるGo GraphQLクライアントライブラリ(例えば、Machine Box graphql)を使用してクエリやミューテーションを実行できます。これは、生のREST呼び出しよりも構造化されたアプローチになる可能性があります。
アプリでリアルタイムの更新を見たい場合は、Back4Appダッシュボードでライブクエリを有効にできます。Golangには公式のParseライブクエリライブラリはありません。しかし、 wss://YOUR_SUBDOMAIN.b4a.io からのライブクエリの更新をリッスンするために独自のウェブソケット接続を実装できます。この機能は、即時データ同期を必要とする共同作業アプリに役立ちます。
Back4Appは、データを保護するためにアクセス制御リスト(ACL)とクラスレベルの権限(CLP)を提供します。ACLは各オブジェクトに定義され、CLPはクラス全体の包括的なルールを定義します。

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

オブジェクトを作成または更新する際にACLを渡すことができます。これにより、特定のユーザーまたは役割のみがデータを読み書きできることが保証されます。詳細については、アプリセキュリティガイドラインをご覧ください。
クラウドコードを使用すると、サーバー側の関数、トリガー、または検証を実行できます。自分のサーバーを管理することなく、サーバー側から高度なビジネスロジックを追加したり、外部APIを統合したりできます。
簡単な例は、テキストの長さを計算する関数です。Back4Appダッシュボードの main.js ファイルに次のように記述します。
Cloud Codeをデプロイするには、次のいずれかを使用します:
- Back4App CLI:
- Back4App Dashboard の Cloud Code > Functions. コードを main.js エディタに貼り付けて、 Deploy をクリックします。

httpクライアントからREST経由でCloud Functionを呼び出すことができます:
Back4Appは、Userクラスを認証に使用します。RESTを介して新しいユーザーを作成すると、バックエンドは資格情報を安全に保存し、セッショントークンを生成します。
返されたセッショントークンを使用して、ユーザー権限が必要な後続のリクエストを行います。Goでは、前述のようにhttpクライアントから同じタイプのHTTPリクエストを送信します。
GoogleやFacebookなどのソーシャルログインには、Back4AppでOAuth設定を構成する必要があります。これらのフローは、トークンの交換を伴うことがよくあります。詳細については、Appleでサインイン / ソーシャルログインのドキュメントを参照してください。
ファイルをbase64エンコードされたデータまたはmultipart/form-dataとして送信することで、Back4Appにファイルを保存できます。
アップロード後、返されたファイルURLまたはファイルポインタを保存することで、オブジェクトにファイルを添付できます。Goでは、同様の方法でhttpリクエストを作成します—ファイルコンテンツを適切にエンコードすることを確認してください。
メール確認は、ユーザーが提供したメールを制御していることを保証し、パスワードリセットはアカウントの回復を助けます。両方の機能はセキュリティと信頼を高めます。
- あなたの Back4App ダッシュボード に移動します。
- 「メール設定」の下で、確認メールを有効にします。
- 必要に応じて、メールテンプレートをカスタマイズします。
ユーザーがサインアップすると、確認メールが自動的に送信されます。
パスワードリセットを開始するには、requestPasswordReset REST エンドポイントを使用します:
クラウドジョブは、古いデータのクリーンアップや週刊ニュースレターの送信などのタスクを自動化するためにスケジュールに従って実行されます。
このジョブをデプロイし、あなたの Back4App ダッシュボード > アプリ設定 > サーバー設定 > バックグラウンドジョブ でスケジュールします。

ウェブフックを使用すると、特定のイベントが発生したときに外部サービスに通知できます。たとえば、新しいTodoアイテムが作成されたときにSlackアラートを送信することができます。
- Back4App ダッシュボードの ウェブフック セクションに移動します。
- エンドポイントを設定します (例えば、https://your-external-service.com/webhook)。
- トリガーを割り当てます (例:afterSave のTodo)。

イベントの直接制御を好む場合は、httpクライアントリクエストを記述することでクラウドコードから外部APIをトリガーすることもできます。
Back4App管理アプリは、データを管理するために非技術的なチームメンバーと共有できるポイント&クリックインターフェースです。
- Back4Appダッシュボードの More > Admin App に移動します。
- それを有効にし、管理ユーザーを作成します。

選択したサブドメインを使用して、データ操作のためのシンプルな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を使用してバックエンド機能を拡張します。
