Files
njts-accounting-core/backend/app/main.py
2025-12-14 23:54:48 +09:00

68 lines
2.1 KiB
Python

from dotenv import load_dotenv
load_dotenv()
from fastapi import FastAPI, Request
from fastapi.responses import JSONResponse
from pydantic import ValidationError
# FastAPI アプリケーション作成
app = FastAPI(
title="日本小規模企業向け会計システム"
)
from fastapi.middleware.cors import CORSMiddleware
app.add_middleware(
CORSMiddleware,
allow_origins=["*"], # 本地开发先用 *
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
@app.exception_handler(ValidationError)
async def validation_exception_handler(request: Request, exc: ValidationError):
# ここでは最初のエラーだけ簡潔に返す(必要に応じて整形)
first = exc.errors()[0]
msg = first.get("msg", "入力値が不正です。")
return JSONResponse(status_code=400, content={"detail": msg})
# ─────────────────────────
# ルート(稼働確認)
# ─────────────────────────
@app.get("/", summary="稼働確認")
def root():
return {"status": "ok"}
# ─────────────────────────
# ルーター登録(※ 必ず app 定義の後)
# ─────────────────────────
from app.modules.accounts.router import router as accounts_router
app.include_router(accounts_router)
from app.modules.journals.router import router as journals_router
app.include_router(journals_router)
from app.modules.ledger.router import router as ledger_router
app.include_router(ledger_router)
from app.modules.trial_balance.router import router as trial_balance_router
app.include_router(trial_balance_router)
from app.modules.opening_balances.router import router as opening_router
app.include_router(opening_router)
from app.modules.general_ledger.router import router as general_ledger_router
app.include_router(general_ledger_router)
from app.modules.opening_balances.lock_router import router as opening_balance_lock_router
app.include_router(opening_balance_lock_router)