Quickstarters
CRUD Samples
How to a Basic CRUD App with Alpine.js?
38 分
概要 このガイドでは、alpine jsを使用してcrud(作成、読み取り、更新、削除)アプリケーションを構築する方法を学びます。 このチュートリアルでは、back4appを堅牢なバックエンドサービスとして活用し、データを動的に管理するために必要なコア操作を説明します。 まず、「 basic crud app alpinejs 」という新しいback4appプロジェクトを設定します。このプロジェクトは、データ管理のためのバックエンドとして機能します。 プロジェクトを初期化した後、コレクションとフィールドを定義することで柔軟なデータベーススキーマを設計します。これは手動で行うことも、back4app aiエージェントの助けを借りることもできます。このステップにより、バックエンドが信頼性のあるcrud操作のために構造化されます。 次に、使いやすいドラッグアンドドロップツールであるback4app admin appを使用して、コレクションを簡単に管理します。このインターフェースはデータ管理タスクを効率化します。 最後に、restまたはgraphql apiを使用してalpine jsフロントエンドをback4appに接続し、堅牢なアクセス制御でバックエンドを保護します。 このチュートリアルの終わりまでに、基本的なcrud操作とユーザー認証、セキュアなデータ更新をサポートする本番環境向けのwebアプリを持つことができます。 学ぶこと 効率的なバックエンドサービスを使用してcrudアプリケーションを構築する方法。 スケーラブルなデータモデルを設計し、それをalpine jsフロントエンドにリンクする方法。 コレクションを管理するためのドラッグアンドドロップ管理ツールの使用に関するヒント。 コンテナ化とウェブデプロイメント技術を使用してアプリケーションをデプロイするための戦略。 前提条件 始める前に、次のことを確認してください 新しいプロジェクトが準備されたback4appアカウント。 ヘルプについては、 back4appの始め方 https //www back4app com/docs/get started/new parse app を参照してください。 alpine js開発環境。 プロジェクトのセットアップに応じて、cdnまたはnpmを介してalpine jsを含めてください。 javascript、alpine js、およびrest apiの原則に精通していること。 詳細については、 alpine jsのドキュメント https //alpinejs dev/start を参照してください。 ステップ1 – プロジェクトの開始 新しいback4appプロジェクトの設定 back4appダッシュボードにログインします。 「新しいアプリ」ボタンをクリックします。 プロジェクト名を入力します basic crud app alpinejs と指示に従います。 新しいプロジェクトを作成 作成後、プロジェクトはダッシュボードに表示され、バックエンドの設定が可能になります。 ステップ2 – データベーススキーマの作成 データモデルのマッピング 私たちのcrudアプリのために、いくつかの重要なコレクションを設定します。以下は、スキーマ設定のガイドとなるフィールドとデータ型を持つサンプルコレクションです。これらのコレクションは、基本的なcrudアクションを促進します。 1\ アイテムコレクション このコレクションは各アイテムの詳細を保持しています。 フィールド タイプ 目的 id オブジェクトid 自動生成された主識別子。 タイトル 文字列 アイテムの名前またはタイトル。 説明 文字列 アイテムに関する簡単な要約。 作成日時 日付 アイテム作成のタイムスタンプ。 更新日時 日付 最終更新のタイムスタンプ。 2\ ユーザーコレクション このコレクションはユーザーの資格情報と詳細を保存します。 フィールド タイプ 目的 id オブジェクトid 自動生成された主識別子。 ユーザー名 文字列 ユニークユーザー識別子。 メール 文字列 ユーザーのユニークなメールアドレス。 パスワードハッシュ 文字列 安全に保存されたハッシュ化されたパスワード。 作成日時 日付 アカウント作成のタイムスタンプ。 更新日時 日付 最後のアカウント更新のタイムスタンプ。 これらのコレクションは、back4appダッシュボードで新しいクラスを追加し、それに応じて列を定義することで手動で作成できます。 新しいクラスを作成 フィールドを設定するには、タイプを選択し、名前を付け、デフォルト値を追加し、必須としてマークします。 列を作成 スキーマ作成のためのback4app aiエージェントの活用 back4app aiエージェントは、スキーマ生成を自動化するのに役立ちます。希望するフィールドを説明するプロンプトに基づいてコレクションを作成します。 aiエージェントの使用方法 back4appダッシュボードからaiエージェントを開きます。 必要なコレクションとフィールドの詳細な説明を入力します。 提案されたスキーマを確認し、それをプロジェクトに適用します。 サンプルプロンプト create the following collections 1\) collection items \ fields \ id objectid (auto generated) \ title string \ description string \ created at date (auto generated) \ updated at date (auto updated) 2\) collection users \ fields \ id objectid (auto generated) \ username string (unique) \ email string (unique) \ password hash string \ created at date (auto generated) \ updated at date (auto updated) このツールは時間を節約し、一貫性のある最適化されたスキーマを確保します。 ステップ3 – 管理インターフェースとcrud機能の有効化 管理アプリの紹介 back4app管理アプリは、バックエンドデータを管理するためのノーコードインターフェースを提供します。ドラッグアンドドロップ機能により、crudタスクが簡単かつ効率的に行えます。 管理アプリを有効にする方法 back4appダッシュボードの「その他」セクションに移動します。 「 管理アプリ 」を選択し、「 管理アプリを有効にする 」をクリックします。 最初の管理者資格情報を設定して、役割とシステムコレクションを構成します。 管理アプリを有効にする 有効化されたら、管理アプリにサインインしてデータを管理します。 管理アプリダッシュボード 管理アプリでのcrudアクションの実行 管理アプリ内で、次のことができます レコードの作成 アイテムのようなコレクションで「レコードを追加」ボタンをクリックします。 レコードの読み取りと更新 詳細を表示したり、編集するためにレコードを選択します。 レコードの削除 削除機能を使用して不要なエントリを削除します。 このインターフェースは、直感的なドラッグアンドドロップデザインでデータ管理を簡素化します。 ステップ4 – alpine jsをback4appに接続する バックエンドが準備できたら、alpine jsフロントエンドをback4appにリンクする時です。 rest/graphql apiの使用 バックエンドとやり取りするためにrestまたはgraphqlを使用します。 例:restを介してアイテムを取得する // sample rest api call using fetch async function loaditems() { try { const response = await fetch('https //parseapi back4app com/classes/items', { headers { 'x parse application id' 'your application id', 'x parse rest api key' 'your rest api key' } }); const data = await response json(); console log('items loaded ', data results); } catch (error) { console error('error loading items ', error); } } loaditems(); これらのapi呼び出しをalpine jsコンポーネント内に統合してcrud操作を実行します。 ステップ5 – バックエンドの保護 アクセス制御リスト(acl)の設定 aclをレコードに適用してデータを保護します。たとえば、プライベートアイテムを作成するには async function addprivateitem(data, owner) { const itemdata = { title data title, description data description }; // define acl settings only the owner has read/write privileges const aclsettings = { " " { "read" false, "write" false }, \[owner] { "read" true, "write" true } }; try { const response = await fetch('https //parseapi back4app com/classes/items', { method 'post', headers { 'content type' 'application/json', 'x parse application id' 'your application id', 'x parse rest api key' 'your rest api key' }, body json stringify({ itemdata, acl aclsettings }) }); const result = await response json(); console log('private item added ', result); } catch (error) { console error('error adding private item ', error); } } クラスレベルの権限(clp)の設定 back4appダッシュボード内で、各コレクションのclpを設定してデフォルトのアクセスポリシーを強制し、認可されたユーザーのみが機密データにアクセスできるようにします。 ステップ6 – ユーザー認証の実装 ユーザーアカウントの作成 back4appは、認証管理のためにparseのuserクラスを利用しています。あなたのalpine jsプロジェクトでは、api呼び出しを通じてユーザー登録とログインを処理します。 例:alpine jsによるユーザーサインアップ sign up ユーザーログインとセッション管理のために、同様の方法を実装できます。 ステップ7 – webデプロイメントによるalpine jsフロントエンドのデプロイ back4appのwebデプロイメント機能を使用すると、alpine jsフロントエンドを簡単にホストできます。このセグメントでは、プロダクションビルドを準備し、コードをgithubにコミットし、リポジトリをwebデプロイメントに接続し、アプリを起動します。 7 1 プロダクションアセットを構築する ターミナルでプロジェクトディレクトリを開きます。 ビルドプロセスを使用している場合は、ビルドコマンドを実行します(alpine js用): npm run build これにより、最適化された静的ファイルを含むフォルダー(通常は dist または build )が生成されます。 ビルドフォルダーに必要なアセットとともに index html が含まれていることを確認します。 7 2 ソースファイルを整理してアップロードする あなたのgithubリポジトリには、alpine jsプロジェクトのすべてのソースファイルが含まれているべきです。一般的な構造は次のようになります: basic crud app alpinejs frontend/ ├── node modules/ ├── public/ │ └── index html ├── src/ │ ├── main js │ └── components/ │ ├── itemslist js │ └── auth js ├── package json └── readme md サンプルファイル src/main js document addeventlistener('alpine\ init', () => { alpine data('itemsapp', () => ({ items \[], newitemtitle '', newitemdescription '', async loaditems() { try { const response = await fetch('https //parseapi back4app com/classes/items', { headers { 'x parse application id' 'your application id', 'x parse rest api key' 'your rest api key' } }); const data = await response json(); this items = data results; } catch (error) { console error('failed to load items ', error); } }, async additem() { const payload = { title this newitemtitle, description this newitemdescription }; try { await fetch('https //parseapi back4app com/classes/items', { method 'post', headers { 'content type' 'application/json', 'x parse application id' 'your application id', 'x parse rest api key' 'your rest api key' }, body json stringify(payload) }); this newitemtitle = ''; this newitemdescription = ''; this loaditems(); } catch (error) { console error('error adding item ', error); } } })); }); コードをgithubにコミットする プロジェクトフォルダーにgitリポジトリを初期化します git init ファイルをステージします git add 変更をコミットします git commit m "alpine jsフロントエンドの初期コミット" githubに新しいリポジトリを作成します(例: basic crud app alpinejs frontend )。 コードをプッシュします git remote add origin https //github com/your username/basic crud app alpinejs frontend git git push u origin main 7 3 githubリポジトリをwebデプロイメントにリンクする back4appダッシュボードにサインインし、プロジェクトを選択します ( basic crud app alpinejs )。 「 web deployment 」セクションを開きます。 githubアカウントを接続し、alpine jsコードを含むリポジトリとブランチを選択します。 7 4 デプロイ設定の構成 ビルドコマンド プロジェクトにプリビルドフォルダがない場合は、コマンドを指定します(例 npm run build )。 出力ディレクトリ 静的ファイルがあるフォルダに設定します(例 build または dist )。 環境変数 apiキーなど、必要な変数を追加します。 7 5 alpine jsアプリケーションのdocker化(オプション) dockerを使用してデプロイする場合は、次のような dockerfile を含めます \# use an official node image for building from node 16 alpine as build \# set working directory workdir /app \# copy dependency files and install copy package json / run npm install \# copy source and build app copy run npm run build \# use nginx to serve the static files from nginx\ stable alpine copy from=build /app/build /usr/share/nginx/html expose 80 cmd \["nginx", " g", "daemon off;"] 必要に応じて、webデプロイ構成でdockerオプションを選択します。 7 6 アプリケーションの起動 back4appの deploy ボタンをクリックします。 back4appがコードを取得し、ビルドし、デプロイする過程を監視します。 デプロイが完了すると、あなたのalpine jsアプリケーションがホストされているurlが届きます。 7 7 デプロイのテスト ブラウザで提供されたurlにアクセスします。 アプリが正しく読み込まれ、ルートが期待通りに機能し、アセットが適切に提供されていることを確認します。 ブラウザのコンソールログとback4appのデプロイログを確認して、問題をトラブルシュートします。 ステップ8 – 最終的な考えと今後の改善 おめでとうございます!あなたはalpine jsとback4appを使用して完全なcrudアプリケーションを構築しました。 あなたは basic crud app alpinejs プロジェクトを設定し、詳細なデータベースコレクションを作成し、データ管理のためのノーコード管理ツールを利用しました。 さらに、rest apiを使用してalpine jsのフロントエンドをバックエンドに接続し、安全なデータ処理を確保しました。 次のステップ: uiを強化する: 詳細なアイテムビューやリアルタイム更新などの高度な機能でalpine jsコンポーネントを拡張します。 さらなる機能追加: 追加のバックエンドロジック、サードパーティapi、または複雑なアクセス制御を組み込むことを検討します。 さらなる学習: back4appのドキュメント https //www back4app com/docs や追加のリソースを訪れて、高度な統合についての理解を深めます。 コーディングを楽しんで、次のプロジェクトを構築してください!