acupuncture-website/ # プロジェクトのルートディレクトリ
│
├── .devcontainer/
│ └── devcontainer.json # 開発コンテナの設定ファイル
│
├── alembic/
│ └── env.py # Alembicのマイグレーション環境設定
│
├── app/ # FastAPIアプリケーションディレクトリ
│ ├── crud/
│ │ ├── init.py # CRUD操作をインポートするための初期化ファイル
│ │ └── crud.py # データベースCRUD操作の関数定義
│ │
│ ├── models/
│ │ ├── init.py # モデルをインポートするための初期化ファイル(空)
│ │ └── acupuncture_point.py # ツボのデータベースモデル
│ │
│ ├── routes/
│ │ ├── init.py # ルートをインポートするための初期化ファイル(空)
│ │ └── acupuncture_points.py # ツボに関するAPIエンドポイント
│ │
│ ├── schemas/
│ │ ├── init.py # スキーマをインポートするための初期化ファイル
│ │ └── schemas.py # Pydanticによるリクエスト・レスポンススキーマ定義
│ │
│ ├── init.py # アプリケーションをインポートするための初期化ファイル(空)
│ ├── dependencies.py # 依存性を解決するための関数(例えばデータベースセッション)
│ └── main.py # FastAPIアプリケーションのメインファイル
│
├── database/
│ ├── init.py # データベースセッションをインポートするための初期化ファイル
│ └── database.py # データベース接続設定
│
├── static/
│ └── favicon.ico # ウェブサイトのファビコン(空)
│
├── alembic.ini # Alembicの設定ファイル
├── create_tables.py # データベーステーブル作成スクリプト
├── docker-compose.yml # Docker Compose設定ファイル
├── Dockerfile # Dockerイメージをビルドするためのファイル
└── requirements.txt # 必要なPythonパッケージ
FastAPIを用いたウェブアプリケーションの構成にしています。
以下に、主要なファイルとそれらに書くべきプログラムの概要を示します。
app/main.py
エントリポイントであり、FastAPIアプリケーションの設定を行います。ルーターを含めることでエンドポイントをアプリケーションに追加します。
from fastapi import FastAPI
from app.routes.acupuncture_points import router as acupuncture_points_router
app = FastAPI()
app.include_router(acupuncture_points_router)
@app.get("/")
async def root():
return {"message": "Hello World"}
app/routes/acupuncture_points.py
ツボに関する具体的なAPIエンドポイントを定義します。ここではCRUD操作をルーティングし、リクエストを処理してレスポンスを返します。
# APIルーターの定義など
app/crud/crud.py
データベースに対するCRUD操作を定義します。セッションとモデルを使用して、データベースにアクセスし、クエリを実行します。
# データベースCRUD操作の関数
app/models/acupuncture_point.py
ツボに関するデータモデルをSQLAlchemyを使って定義します。このモデルを使ってデータベーステーブルが作成されます。
# データベースモデルクラス
app/schemas/schemas.py
リクエストとレスポンスで使用するPydanticモデルを定義します。これにより、入力データの検証とシリアライズを行います。
# Pydanticスキーマクラス
app/dependencies.py
依存関係を提供します。例えば、データベースセッションを生成するための依存性を提供することで、エンドポイントごとにセッションを注入できます。
# データベースセッションを提供する依存性
database/database.py
データベースエンジンとセッションファクトリを設定します。この設定を使用して、データベース接続を管理します。
# SQLAlchemyエンジンとセッションの設定
alembic/env.py
データベースマイグレーションのためのAlembic設定を含みます。データベーススキーマの変更を管理するために使用します。
# Alembicマイグレーションの環境設定
Dockerfile と docker-compose.yml
コンテナ化された環境でアプリケーションとデータベースを実行するための設定を含みます。
# Dockerfileでのコンテナビルド設定
# docker-compose.ymlでのサービス設定
これらのファイルに適切なコードを追加し、プロジェクトのディレクトリ構造に従って配置することで、ツボ情報ウェブサイトの開発を進めることができます。