Quickstarters
Feature Overview
How to Build a Backend for Java?
36 分
はじめに このチュートリアルでは、 java アプリケーションのバックエンドを back4app を使用して構築する方法を学びます。 java は、ウェブ開発やサーバーサイドアプリケーション開発に広く使用されている多用途のオブジェクト指向プログラミング言語です。 back4app を java プロジェクトに統合することで、安全なデータベース管理、cloud code 関数、restful ウェブサービス、graphql api、ユーザー認証、リアルタイムクエリなどの重要なバックエンド機能を活用でき、インフラストラクチャのオーバーヘッドを最小限に抑えることができます。 このアプローチにより、 java バックエンド開発 を加速し、スケーラビリティを確保し、手動サーバー構成の複雑さから解放されます。 データ構造の確立から cloud jobs を使用したタスクのスケジューリング、webhook の統合に至るまで、これらの技術を実践的に適用する経験を得ることができます。 この基盤により、小規模なウェブアプリから大規模な企業の java アプリケーション まで、簡単に構築することができます。 このガイドを完了した後、back4app の堅牢なバックエンドインフラストラクチャを使用して ウェブアプリケーション を作成または拡張する準備が整います。 「 parse java sdk 」を接続して、データ操作を実行し、アクセス制御を実装し、複雑なビジネスロジックを処理する方法を知ることができます。 このチュートリアルでは、このプラットフォーム上での構築を続けるために必要なスキルを提供し、新しい機能を追加したり、プロダクション準備の最適化を行ったりします。 前提条件 このチュートリアルを完了するには、次のものが必要です back4appアカウントと新しいback4appプロジェクト back4appの始め方。 https //www back4app com/docs/get started/new parse app アカウントがない場合は無料でサインアップしてください。 java開発環境 任意の javaバックエンドフレームワーク またはjava ide(例:intellij、eclipse、またはjavaを使用したvs code)でこれを設定できます。 java development kit (jdk) がインストールされていることを確認してください。 最新のjdkをダウンロード https //www oracle com/java/technologies/downloads/ javaプログラミング言語の基本知識 オブジェクト指向プログラミング の概念、 データ構造 , および restfulウェブサービス に精通していることが役立ちます。 java公式ドキュメント https //docs oracle com/en/java/ 依存関係管理のためのmavenまたはgradle (オプション) ビルドツールを使用してparse java sdkを統合する予定がある場合は、mavenまたはgradleをインストールしておく必要があります。 mavenドキュメント https //maven apache org/ | gradleドキュメント https //gradle org/docs/ 始める前に、これらの前提条件がすべて整っていることを確認してください。back4appプロジェクトが準備され、java環境が構成されていると、このチュートリアルがスムーズになります。 ステップ1 – back4appで新しいプロジェクトを作成し、接続する 新しいプロジェクトを作成する back4appでの javaバックエンド開発 の最初のステップは、新しいプロジェクトを作成することです。まだ作成していない場合は、次の手順に従ってください back4appアカウントにログインします 「新しいアプリ」ボタンをクリックします あなたのback4appダッシュボードで。 アプリに名前を付けます (例:「java backend tutorial」)。 プロジェクトが作成されると、あなたのback4appダッシュボードにリストされているのが見えます。このプロジェクトは、このチュートリアルで説明するすべてのバックエンド設定の基盤となります。 parse sdkを接続する back4appは、 parse platform を利用してデータを管理し、リアルタイムの更新を提供し、ユーザー認証を処理し、その他の機能を提供します。 java プロジェクトの場合、 parse java sdk https //github com/parse community/parse sdk java を統合できます。 parseキーを取得します あなたのback4appダッシュボードで、「 アプリ設定 」または「 セキュリティとキー 」に移動して、あなたの アプリケーションid と クライアントキー を見つけます。 parseサーバーurl (通常は https //parseapi back4app com )も表示されます。 parse java sdkを プロジェクトに追加します。mavenを使用している場合は、次の内容をあなたの pom xml に追加します。 \<dependency> \<groupid>com parse\</ >groupid> \<artifactid>parse\</ >artifactid> \<version>1 26 0\</ >version> \</dependency> gradleを使用する場合は、次のように追加します build gradle dependencies { implementation 'com parse\ parse 1 26 0' } parseを初期化する javaコード内で(例:メインクラスまたは設定クラス内): import com parse parse; public class main { public static void main(string\[] args) { parse initialize(new parse configuration builder("your app context") applicationid("your application id") clientkey("your client key") server("https //parseapi back4app com/") build() ); system out println("parse initialized successfully!"); // continue with your app logic } } 次のように置き換えます "your app context" 実際のコンテキスト(ある場合)に置き換えるか、必要ない場合は null を渡します。このコードは、あなたの web apps または server side javaアプリケーションがback4appと安全に通信できることを保証します。 ステップ2 – データベースの設定 back4appは、あなたの java programming language アプリとシームレスに統合されるホスティングされたスケーラブルなデータベースを提供します。クラス、カラム、リレーションシップをback4appダッシュボードで直接、またはその場で作成できます。 1 データモデルの作成 back4appデータベースでクラス(テーブル)とそのカラムを定義できます。例えば、 todo クラスを作成するには 「データベース」セクションに移動 し、back4appダッシュボードで。 「新しいクラスを作成」をクリック し、名前を todo とします。 関連するカラムを追加 (例 title をstringとして、 iscompleted をbooleanとして)。 2 aiエージェントを使用したデータモデルの作成 back4appのaiエージェントは、スキーマを自動的に構築できます ダッシュボードでaiエージェントを開く データを説明する (例 「タイトルとiscompletedフィールドを持つ新しいtodoクラスを作成します。」)。 ai生成スキーマをレビューし、適用する 3 parse java sdkを使用したデータの読み取りと書き込み 以下は、データベースにデータを保存し、クエリを実行する方法の短い例です。 java import com parse parseobject; import com parse parsequery; import com parse parseexception; import com parse parsecloud; import java util list; public class todoservice { // create a new todo public void createtodoitem(string title, boolean iscompleted) { parseobject todo = new parseobject("todo"); todo put("title", title); todo put("iscompleted", iscompleted); try { todo save(); system out println("todo saved successfully with objectid " + todo getobjectid()); } catch (parseexception e) { system err println("error saving todo " + e getmessage()); } } // fetch all todos public void fetchtodos() { parsequery\<parseobject> query = parsequery getquery("todo"); try { list\<parseobject> results = query find(); system out println("fetched " + results size() + " todo items "); for (parseobject todo results) { system out println(" " + todo getstring("title")); } } catch (parseexception e) { system err println("error fetching todos " + e getmessage()); } } } 4 rest apiを使用したデータの読み取りと書き込み または、restエンドポイントを使用します curl x post \\ h "x parse application id your application id" \\ h "x parse rest api key your rest api key" \\ h "content type application/json" \\ d '{"title" "buy groceries", "iscompleted" false}' \\ https //parseapi back4app com/classes/todocurl x post \\ h "x parse application id your application id" \\ h "x parse rest api key your rest api key" \\ h "content type application/json" \\ d '{"title" "buy groceries", "iscompleted" false}' \\ https //parseapi back4app com/classes/todocurl x post \\ h "x parse application id your application id" \\ h "x parse rest api key your rest api key" \\ h "content type application/json" \\ d '{"title" "buy groceries", "iscompleted" false}' \\ https //parseapi back4app com/classes/todo 5 graphql apiを使用したデータの読み取りと書き込み back4appのgraphqlインターフェースを使用します mutation { createtodo(input { fields { title "clean the house" iscompleted false } }) { todo { objectid title iscompleted } } } 6 ライブクエリの使用(オプション) ウェブ開発 の リアルタイム更新 のシナリオでは、back4appはライブクエリをサポートしています。ダッシュボードでライブクエリを有効にし、使用ケースに合う場合はjavaアプリケーションに統合してください(リアルタイムのウェブまたはモバイルアプリでよく使用されます)。 ステップ3 – aclとclpによるセキュリティの適用 簡単な概要 acl (アクセス制御リスト)と clp (クラスレベルの権限)は、誰がオブジェクトを読み書きできるかを制御することで、データを保護するのに役立ちます。 ステップバイステップ クラスレベルの権限 (clp) バック4アプリのダッシュボードで データベース に移動します。 クラスを選択します (例 todo ) そして クラスレベルの権限 を開きます。 ユーザー認証を要求したり、公共アクセスを制限したりするなど、読み取り/書き込みルールを設定します。 アクセス制御リスト (acl) コード内でオブジェクトレベルの権限を適用します。例えば parseobject todo = new parseobject("todo"); todo put("title", "private task"); // grant owner read/write permission, remove public read/write todo setacl(new com parse parseacl(parseuser getcurrentuser())); try { todo save(); } catch (parseexception e) { e printstacktrace(); } これにより、aclが設定され、現在のユーザーのみがオブジェクトを読み書きできるようになります。 ステップ 4 – クラウドコード関数の作成 なぜクラウドコードなのか クラウドコードは、あなたの javaバックエンド開発 ワークフローのための サーバーサイド ロジックを追加します。カスタム関数、トリガー、および検証を作成し、手動のインフラ管理なしでback4appのサーバー上で実行できます。これは、高度なビジネスロジック、データ変換、または外部apiを安全に呼び出すのに理想的です。 例の関数 back4appの cloud code セクションに main js を作成し、次のように関数を定義します parse cloud define("gettodocount", async (request) => { const query = new parse query("todo"); const count = await query count(); return { totaltodos count }; }); デプロイメント back4app cliを使用して b4a deploy または、 ダッシュボードを通じて 、 cloud code > functions に移動します。関数を main js に貼り付けて、 デプロイ をクリックします。 クラウドコードにおけるnpm 必要に応じて外部npmモジュールをインストールおよび要求します。たとえば、クラウドコード内で特定のタスクを処理するためにnodeライブラリを要求することができます。これらはjavaコードとは独立して実行されますが、以下に説明するようにjavaアプリケーションから呼び出すことができます。 javaからクラウドコードを呼び出す import com parse parsecloud; import java util hashmap; import java util map; public class cloudcodeexample { public void gettodocount() { try { map\<string, object> params = new hashmap<>(); map\<string, object> result = parsecloud callfunction("gettodocount", params); system out println("total todos " + result get("totaltodos")); } catch (exception e) { e printstacktrace(); } } } ステップ 5 – 認証の設定 ユーザー認証の有効化 back4appの parse user クラスは認証を簡素化します。パスワードのハッシュ化、セッショントークン、セキュアストレージを自動的に管理します。 javaのコードサンプル import com parse parseuser; import com parse parseexception; public class userservice { // sign up public void signupuser(string username, string password, string email) { parseuser user = new parseuser(); user setusername(username); user setpassword(password); user setemail(email); try { user signup(); system out println("user signed up successfully!"); } catch (parseexception e) { system err println("error signing up user " + e getmessage()); } } // log in public void loginuser(string username, string password) { try { parseuser user = parseuser login(username, password); system out println("user logged in " + user getusername()); } catch (parseexception e) { system err println("error logging in user " + e getmessage()); } } } ソーシャルログイン parseは google , facebook , apple , などと統合できます。通常、各プロバイダー用に追加のライブラリをインストールするか、アダプターを使用し、それらをback4appプロジェクトで設定します。 ソーシャルログインのドキュメント https //www back4app com/docs/platform/sign in with apple ステップ6 – ファイルストレージの取り扱い ファイルのアップロードと取得 back4appは自動的にファイルを安全に保存します。使用するには parsefile をjavaで import com parse parsefile; import com parse parseobject; import java nio file files; import java nio file paths; public class fileservice { public void uploadfile(string filepath) { try { byte\[] data = files readallbytes(paths get(filepath)); parsefile parsefile = new parsefile("uploadedfile", data); parsefile save(); // uploads file parseobject fileobject = new parseobject("myfile"); fileobject put("file", parsefile); fileobject save(); system out println("file uploaded " + parsefile geturl()); } catch (exception e) { e printstacktrace(); } } } セキュリティの考慮事項 ファイルアップロードの権限を設定するには、あなたの parse server 設定で、認証されたユーザーのみを許可するか、公開アップロードをブロックすることができます。 ステップ7 – メール確認とパスワードリセット 概要 安全な ウェブアプリ , ユーザーのメールを確認し、パスワードリセットオプションを提供することが重要です。 back4app ダッシュボードの設定 メール設定に移動 あなたの back4app ダッシュボードで。 メール認証を有効にする そしてテンプレートを設定します。 パスワードリセットを有効にする ユーザーが安全にアカウントを回復できるようにします。 コードの実装 try { parseuser requestpasswordreset("user\@example com"); system out println("password reset request sent!"); } catch (parseexception e) { system err println("error requesting password reset " + e getmessage()); } ステップ 8 – クラウドジョブを使ったタスクのスケジューリング クラウドジョブの概要 「 クラウドジョブ 」を使用して、定期的なデータクリーンアップや自動レポートなどのタスクをスケジュールします。 main js でジョブを作成します。 parse cloud job('cleanupoldtodos', async (request) => { const todo = parse object extend('todo'); const query = new parse query(todo); // example remove todos older than 30 days const now = new date(); const thirty days = 30 24 60 60 1000; const cutoff = new date(now thirty days); query lessthan('createdat', cutoff); const oldtodos = await query find({ usemasterkey true }); await parse object destroyall(oldtodos, { usemasterkey true }); return `deleted ${oldtodos length} old todos `; }); デプロイして、次にあなたの back4app ダッシュボードの バックグラウンドジョブ セクションでスケジュールします。 ステップ 9 – ウェブフックの統合 定義と設定 ウェブフック は、特定のイベントが発生したときに外部システムに http リクエストを送信することを可能にします。たとえば、 todo が作成されるたびに、支払いゲートウェイや分析プラットフォームにデータを送信することができます。 アプリのダッシュボードに移動 > もっと見る > ウェブフック 外部エンドポイントを指定して ウェブフックを追加します。 どのイベントが ウェブフックをトリガーするかを選択します。 ステップ10 – back4app管理パネルの探索 どこで見つけるか 「 back4app管理パネル 」は、データを管理するためのコード不要のインターフェースです。以下の手順で有効にします:「},{ アプリダッシュボード > その他 > 管理アプリ 結論 このガイドを完成させることで、あなたは back4appを使用したjavaのバックエンド構築方法 を学びました。 スケーラブルなデータベースを 設定しました。 リアルタイムクエリを 実装しました。 restfulウェブサービス , およびデータアクセスのためのgraphql。 堅牢なセキュリティ対策を 統合しました。 aclとclpを使用して。 サーバーサイドロジックのために cloud codeを活用しました。 ユーザー認証を 設定しました。 メール確認とパスワードリセットを使用して。 ファイルを 保存および取得しました。 あなたの ウェブアプリケーション のために。 データ管理のために バックグラウンドジョブをスケジュールしました。 サードパーティサービスとの統合のために ウェブフックを接続しました。 コードなしでデータ管理のために 管理パネルを探求しました。 あなたは今、 javaバックエンドフレームワーク を拡張し、プロダクション負荷を処理し、外部apiを統合し、高度な機能を構築する準備が整いました。この堅固な基盤を持って、あなたの javaプログラミング言語 プロジェクトは、 ウェブ開発 やそれ以外の分野で新たな高みを目指すことができます。 次のステップ バックエンドを洗練させる エンタープライズレベルの javaバックエンド開発 , 複雑なロジックとドメイン特有のデータ構造を追加します。 高度な機能を統合する 専門的な認証フロー、役割ベースのアクセス、またはサードパーティのrest apiなど。 公式のback4appドキュメントを参照する パフォーマンスチューニング、ロギング、分析の理解を深めるために。 さらに多くのチュートリアルを探る チャットシステム、iotサービス、またはジオロケーションアプリの構築に関して、back4appのリアルタイム機能をさらに活用するために。