> ## Documentation Index
> Fetch the complete documentation index at: https://docs.base44.com/llms.txt
> Use this file to discover all available pages before exploring further.

# ローカル開発

> base44 dev でバックエンドプロジェクトをローカルで開発・テストする

ローカル開発では、バックエンドプロジェクトを自分のマシンで実行できるため、変更を即座にテストし、本番環境に影響を与えることなくデータを検査し、デプロイ前に問題を発見できます。

前提条件と段階的な手順については、[セットアップ](/developers/backend/overview/local-dev/get-started)を参照してください。

## ローカルで実行されるもの

開発サーバーは、これらの機能を完全にマシン上で処理します:

* **[Functions](#functions):** バックエンド関数はローカルで実行され、ファイル変更時に自動リロードされます。
* **[Entities](#entities):** エンティティデータはローカルのインメモリデータベースに保存されます。スキーマ変更は自動的に取り込まれます。
* **[Media](#media):** ファイルアップロードはローカルに保存されます。
* **[Authentication](#authentication):** メール/パスワードの登録とログインはローカルで実行されます。

<Note>
  関数の[自動化](/developers/backend/resources/backend-functions/automations)はローカルでは実行されません。
</Note>

## 転送されるもの

一部の機能はまだローカルで処理されません。開発サーバーが処理できないリクエストを受信すると、それをデプロイ済みアプリに転送して、呼び出しが引き続き機能するようにします。サーバーはその都度警告をログに記録します。

転送される機能には次のものが含まれます:

* **認証:** OAuth とソーシャルログインルートは、セッションクッキーが正しく機能するように Base44 にリダイレクトされます。メール/パスワード認証はローカルで実行されます。
* **コアインテグレーション:** `SendEmail` や AI 生成などのエンドポイントは転送されます。ファイルアップロードは例外で、ローカルで実行されます。
* **カスタムインテグレーション:** OpenAPI 仕様を介して構成された API 呼び出し。

これは、開発中にアプリがエンドツーエンドで機能し続けることを意味します。ローカルで実行される機能はローカルデータを使用し、それ以外はすべて本番環境を使用します。

## Functions

バックエンド関数はマシン上でローカルに実行されます。デプロイされた関数と同じようにフロントエンドから呼び出すことができます。

* 各関数は別個の [Deno](https://docs.deno.com/runtime/) プロセスとして実行され、[個別にインストール](https://docs.deno.com/runtime/getting_started/installation/)する必要があります。
* ソースコードを編集すると、関数は自動的にリロードされます。
* 関数の出力はターミナルに直接出力されます。ローカル開発中に [`base44 logs`](/developers/references/cli/commands/logs) を使用する必要はありません。

リクエストが開発サーバーに到達し、ローカル Deno 関数にプロキシされる際、サーバーは関数が本番環境と同じ形のコンテキストを受け取れるように、ヘッダーを追加または正規化する場合があります:

* **`Base44-App-Id`:** 受信した **`X-App-Id`** ヘッダーが存在する場合、それから設定されます。
* **`Base44-Service-Authorization`:** 受信した **`Authorization`** ヘッダーが存在する場合、それから設定されるため、サービス認可ヘッダーをローカルで読むコードがデプロイ環境の動作と一致するようになります。
* **`Base44-Api-Url`:** 開発サーバーのベース URL (スキームとホスト) に設定されるため、関数はローカルサーバーに対してコールバックや絶対 URL を構築できます。

元の **`Authorization`** ヘッダーは変更されずに転送されます。

<Note>
  最初のリクエストは、開発サーバーがオンデマンドでプロセスを起動するため、遅くなる可能性があります。後続のリクエストは実行中のプロセスを再利用します。
</Note>

## Entities

エンティティ操作はリモートデータベースではなくローカルのインメモリデータベースに送られます。これにより、本番データに影響を与えることなく、レコードの作成、読み取り、更新、削除を行うことができます。

* すべてのデータはメモリに保存され、開発サーバーを停止するとクリアされます。
* スキーマ変更は自動的に取り込まれます。エンティティスキーマを変更すると、そのエンティティのすべてのインメモリデータがクリアされます。
* リアルタイムサブスクリプションはローカルで機能します。フロントエンドが `entities.subscribe()` を使用している場合、ローカルエンティティ変更のイベントを受信します。
* `User` エンティティはローカルで実行されます。起動時に、開発サーバーは認証された CLI 認証情報を使用して単一のユーザーレコードをシードします。`me` に対する読み取りおよび更新操作は、本番環境と同様に機能します。ユーザーの作成または削除のリクエストは、直接のユーザー管理が許可されていない本番環境の動作と一致して、静かに無視されます。

## Media

ファイルアップロードはローカルで処理されるため、本番ストレージにアップロードすることなくメディア機能をテストできます。ファイルは一時ディレクトリに保存され、開発サーバーが停止するとクリーンアップされます。最大ファイルサイズは 50 MB です。

## Authentication

アプリが組み込みの認証システムを使用する場合、メール/パスワードの登録とログインはローカルで実行されます。OAuth とソーシャルログインルートは Base44 にリダイレクトされます。

メール/パスワード認証を使用して開発中に新しいユーザーを登録するには:

1. register エンドポイントを呼び出します。開発サーバーは、メールを送信する代わりに、ターミナルにワンタイム検証コードを出力します。
2. アドレスを確認してユーザーを作成するために、verify-OTP エンドポイントにコードを送信します。
3. 登録したメールとパスワードでログインします。

開発者アカウント (`base44 login` に使用したメール) は、任意のパスワードでログインでき、登録は不要です。

<Warning>
  ローカル開発サーバーが発行したトークンは、ローカルでのみ有効です。これらは本番環境とは異なるシークレットで署名されているため、デプロイされたアプリは拒否します。ローカル開発からデプロイされたアプリに切り替える際は、まずローカルセッションからサインアウトするか、ローカルブラウザストレージからトークンを削除してください。その後、デプロイされたアプリ経由でログインし直して、有効なトークンを取得してください。
</Warning>

## 関連項目

* [Setup](/developers/backend/overview/local-dev/get-started): 前提条件と段階的な手順
* [Backend functions](/developers/backend/resources/backend-functions/overview): Base44 のインフラストラクチャ上で実行されるサーバーレス関数を作成
* [Entities](/developers/backend/resources/entities/overview): アプリのデータモデルを定義
* [Project structure](/developers/backend/overview/project-structure): プロジェクトファイルの構成方法

<Note>このページは AI を使用して翻訳されました。最も正確で最新の情報については、[英語版](/) を参照してください。 </Note>
