Quickstarters
CRUD Samples
How to Build a Basic CRUD App with Golang?
31 分
はじめに このガイドでは、golangを使用して基本的なcrud(作成、読み取り、更新、削除)アプリケーションを開発する方法を学びます。 このチュートリアルでは、back4appを堅牢なバックエンドサービスとして活用し、データを効果的に管理するために必要な基本的な操作をカバーします。これから、restfulコールを介してback4appと通信するgolangサーバーを構築します。 まず、 basic crud app golang という名前のback4appプロジェクトを作成し、設定します。このプロジェクトは、アプリケーションの中央データベースとして機能します。 次に、詳細なコレクションとフィールドを手動で設定するか、back4app aiエージェントの助けを借りて、スケーラブルなデータベーススキーマを定義します。この設定により、crud操作を通じて効率的なデータ操作が可能になります。 その後、コレクションを管理するためのドラッグアンドドロップ機能を備えた使いやすいツールであるback4app admin appを有効にします。これにより、レコードの作成、読み取り、更新、削除が簡素化されます。 最後に、必要に応じて堅牢なセキュリティ制御とユーザー認証を実装しながら、rest apiを使用してgolangバックエンドをback4appと統合します。 このチュートリアルの終わりまでに、基本的なcrud操作をサポートし、back4app管理のデータベースとシームレスに接続する、プロダクション準備が整ったgolangウェブサーバーを構築できるようになります。 主なポイント golangを使用してcrudアプリケーションを構築し、back4appを使用してデータを管理する方法を理解します。 スケーラブルなバックエンドアーキテクチャを設定し、それをgolang rest apiと統合する方法についての洞察を得ます。 手間のかからないデータ管理のためにback4app admin appを使用する方法を学びます。 迅速な展開のためのコンテナ化を含む展開技術を発見します。 前提条件 始める前に、以下のものを用意してください 新しいプロジェクトが設定されたback4appアカウント。 ガイダンスについては、 back4appの始め方 https //www back4app com/docs/get started/new parse app を確認してください。 golang開発環境。 go https //golang org/doc/install をインストールしてください(バージョン1 16以降を推奨)。 golang、rest api、およびhttpサーバーの基本的な理解。 必要に応じて、 golangのドキュメント https //golang org/doc/ を参照してください。 ステップ 1 – プロジェクトのセットアップ 新しい back4app プロジェクトの作成 back4app アカウントにログインします。 ダッシュボードの「新しいアプリ」ボタンをクリックします 。 プロジェクト名を入力します basic crud app golang と指示に従ってプロジェクトを作成します。 新しいプロジェクトを作成 プロジェクトがセットアップされると、back4app ダッシュボードにリストされ、バックエンド構成をサポートする準備が整います。 ステップ 2 – データベーススキーマ設計 データ構造の定義 基本的な crud アプリケーションでは、いくつかのコレクションを作成します。必要なコレクションとフィールドの例は次のとおりです 1\ アイテムコレクション このコレクションは、各アイテムの詳細を保存します。 フィールド データ型 説明 id オブジェクトid 自動生成された主キー。 タイトル 文字列 アイテムの名前またはタイトル。 説明 文字列 アイテムの簡潔な説明。 作成日時 日付 アイテム作成のタイムスタンプ。 更新日時 日付 最後の更新を示すタイムスタンプ。 2\ ユーザーコレクション このコレクションはユーザーデータと認証の詳細を保持します。 フィールド データ型 説明 id オブジェクトid 自動生成された主キー。 ユーザー名 文字列 ユーザーの一意の識別子。 メール 文字列 ユーザーのユニークなメールアドレス。 パスワードハッシュ 文字列 ログイン用の暗号化されたパスワード。 作成日時 日付 アカウントが作成された日時。 更新日時 日付 アカウントが最後に更新された日時。 これらのコレクションは、back4appダッシュボードを介して手動で設定できます。各コレクションの新しいクラスを作成し、カラムを定義します。 新しいクラスを作成 データ型を選択し、フィールドに名前を付け、デフォルト値を設定し、それが必須かどうかを示すことで、新しいフィールドを追加できます。 カラムを作成 スキーマ作成のためのback4app aiエージェントの活用 ダッシュボードからアクセスできるback4app aiエージェントは、記述的なプロンプトから自動的にデータベーススキーマを作成できます。この機能はプロジェクトのセットアップを効率化し、一貫性を確保します。 aiエージェントの使用方法 aiエージェントを起動する: back4appダッシュボードを開き、プロジェクト設定の下にあるaiエージェントを見つけます。 データモデルを説明する: 必要なコレクションとフィールドの詳細を含むプロンプトを入力します。 レビューと適用: エージェントがコレクション定義を生成します。変更を確認し、承認します。 サンプルプロンプト create the following collections in my back4app project 1\) collection items \ fields \ id objectid (auto generated primary key) \ title string \ description string \ created at date (auto generated) \ updated at date (auto updated) 2\) collection users \ fields \ id objectid (auto generated primary key) \ username string (unique) \ email string (unique) \ password hash string \ created at date (auto generated) \ updated at date (auto updated) この方法は時間を節約し、スキーマが堅牢で最適化されていることを確保するのに役立ちます。 ステップ3 – 管理アプリの有効化とcrud操作の実行 管理アプリの概要 back4app管理アプリは、バックエンドデータを管理するための直感的なノーコードインターフェースです。レコードの作成、読み取り、更新、削除のためのドラッグアンドドロップインターフェースを提供します。 管理アプリの有効化 「その他」メニューにアクセスする back4appダッシュボードで。 「管理アプリ」を選択する そして「管理アプリを有効にする」をクリックします。 管理者の資格情報を設定する 初期管理者ユーザーを作成することで、役割とシステムコレクションも構成されます。 管理アプリを有効にする 有効化後、管理アプリにログインしてデータベースを管理します。 管理アプリダッシュボード 管理アプリを使用したcrudタスク 管理アプリ内で、あなたは レコードの作成 コレクション(例:アイテム)内の「レコードを追加」ボタンを使用して新しいデータを挿入します。 レコードの読み取り/更新 レコードをクリックしてその詳細を表示または変更します。 レコードの削除 削除オプションを使用して古いレコードを削除します。 このインターフェースは、直感的なドラッグアンドドロップデザインでデータ管理を簡素化します。 ステップ4 – golangとback4appの統合 バックエンドが管理アプリを通じて設定されているので、golangアプリケーションをrestfulエンドポイントを使用してback4appに接続する時が来ました。 golangプロジェクトの設定 golangプロジェクトディレクトリを初期化します 「 basic crud app golang 」という名前のフォルダーを作成し、次のコマンドを実行します go mod init basic crud app golang 必要なパッケージをインストールします このチュートリアルでは、標準ライブラリで十分ですが、必要に応じて外部ライブラリを追加することもできます。 アイテムを取得して表示するサンプルコード 以下は、back4appのアイテムコレクションからアイテムを取得するgolangプログラムの例です package main import ( 	"encoding/json" 	"fmt" 	"io/ioutil" 	"log" 	"net/http" ) const ( 	appid = "your application id" 	restapikey = "your rest api key" ) type item struct { 	objectid string `json "objectid"` 	title string `json "title"` 	description string `json "description"` 	createdat string `json "createdat"` 	updatedat string `json "updatedat"` } type itemsresponse struct { 	results \[]item `json "results"` } func fetchitems() { 	url = "https //parseapi back4app com/classes/items" 	req, err = http newrequest("get", url, nil) 	if err != nil { 	 log fatalf("error creating request %v", err) 	} 	req header add("x parse application id", appid) 	req header add("x parse rest api key", restapikey) 	client = \&http client{} 	resp, err = client do(req) 	if err != nil { 	 log fatalf("error fetching items %v", err) 	} 	defer resp body close() 	body, err = ioutil readall(resp body) 	if err != nil { 	 log fatalf("error reading response %v", err) 	} 	var itemsresp itemsresponse 	if err = json unmarshal(body, \&itemsresp); err != nil { 	 log fatalf("error parsing json %v", err) 	} 	for , item = range itemsresp results { 	 fmt printf("title %s, description %s\n", item title, item description) 	} } func main() { 	fmt println("fetching items from back4app ") 	fetchitems() } このプログラムは、back4app items エンドポイントに get リクエストを送信し、json レスポンスをデコードして、各アイテムのタイトルと説明を出力します。 crud 機能の拡張 同様に、golang で次の機能を実装できます アイテムの作成 アイテムデータを含む post リクエストを送信します。 アイテムの更新 既存のレコードを変更するために put または post リクエストを使用します。 アイテムの削除 レコードを削除するために delete リクエストを発行します。 これらの機能を go の net/http パッケージを使用して、crud 操作のルートを処理する完全な http サーバーに統合します。 ステップ 5 – バックエンドのセキュリティ アクセス制御の実装 crud 操作を行う際にアクセス制御リスト (acl) を適用することで、データセキュリティを強化します。 たとえば、back4app のダッシュボードを通じて適切な acl を設定し、golang api を介してそれらを強制することで、認可されたユーザーのみがデータを変更または削除できるようにします。 クラスレベルの権限の設定 back4app インターフェースでクラスレベルの権限 (clp) を調整し、認証されたユーザーまたは特定の役割にデータアクセスを制限します。 ステップ 6 – ユーザー認証 アカウント管理の設定 back4appは、認証のためにparseのuserクラスを使用します。golangアプリケーションでは、適切なback4appエンドポイントにリクエストを送信することで、ユーザー登録とログインを処理します。これには以下が含まれます ユーザー登録 ユーザー名、メールアドレス、パスワードを含むpostリクエスト。 ユーザーログイン 資格情報の確認とセッショントークンの管理。 これらのエンドポイントをgolangサーバーに統合して、crud操作を保護します。 ステップ 7 – golangアプリケーションのデプロイ 7 1 プロダクションビルドの準備 golangコードをコンパイルします プロジェクトディレクトリで、次のコマンドを実行します go build o crud app バイナリを確認します 実行可能ファイル( crud app )がエラーなしで実行されることを確認します。 7 2 プロジェクトファイルの整理 プロジェクト構造は次のようになるかもしれません basic crud app golang/ ├── main go ├── handlers go ├── models go ├── go mod └── readme md 7 3 dockerによるコンテナ化 コンテナ化を好む場合は、次のように dockerfile を含めてください \# use an official golang image to build the app from golang 1 18 alpine as builder \# set the working directory workdir /app \# copy go mod and go sum files copy go mod go sum / \# download dependencies run go mod download \# copy the source code copy \# build the application run go build o crud app \# use a minimal image to run the app from alpine\ latest workdir /root/ copy from=builder /app/crud app expose 8080 cmd \[" /crud app"] 7 4 アプリケーションのデプロイ お好みのプラットフォームにデプロイ vps、クラウドプロバイダー、またはback4appのデプロイメントサービスを選択するかにかかわらず、バイナリまたはdockerコンテナをアップロードします。 デプロイを監視 ログを確認し、apiエンドポイントにアクセスできることを確認します。 アプリケーションをテスト サーバーのurlにアクセスして、すべてのcrudエンドポイントが意図した通りに動作することを確認します。 ステップ8 – 結論と次のステップ 素晴らしい仕事です!あなたはgolangとback4appを使用して基本的なcrudアプリケーションを成功裏に構築しました。あなたは basic crud app golang というプロジェクトを設定し、アイテムとユーザーのためのコレクションを設計し、golangバックエンドをrest apiを介してback4appに接続しました。 次のステップ: apiを強化する: 詳細なアイテムビュー、検索機能、またはリアルタイム更新のためのエンドポイントを追加します。 追加のセキュリティを実装する: 高度な認証方法を探求し、エンドポイントをさらに保護します。 さらなるリソースを探る: back4appのドキュメント https //www back4app com/docs と golangのドキュメント https //golang org/doc/ を参照して、より深い洞察を得てください。 このチュートリアルに従うことで、あなたはgolangを使用して堅牢でスケーラブルなcrudアプリケーションを構築するための基盤を持ち、back4appとシームレスに統合されています。コーディングを楽しんでください!