Files
AI/crawler_platform/app/main.py
2026-05-12 19:40:31 +09:00

33 lines
1020 B
Python

from __future__ import annotations
import os
from pathlib import Path
from fastapi import FastAPI, Request
from fastapi.responses import FileResponse, JSONResponse
from fastapi.staticfiles import StaticFiles
from crawler_platform.app.api.routes import register_routes
from crawler_platform.app.core.database.session import init_db
DATABASE_URL = os.getenv("CRAWLER_DATABASE_URL", "sqlite:///crawler_platform.db")
STATIC_DIR = Path(__file__).parent / "web" / "static"
app = FastAPI(title="Ontology Crawler Platform", version="0.1.0")
init_db(DATABASE_URL)
register_routes(app, DATABASE_URL)
@app.exception_handler(KeyError)
def _handle_key_error(_request: Request, exc: KeyError) -> JSONResponse:
return JSONResponse(status_code=404, content={"detail": str(exc.args[0]) if exc.args else "not found"})
if STATIC_DIR.exists():
app.mount("/static", StaticFiles(directory=STATIC_DIR), name="static")
@app.get("/", include_in_schema=False)
def admin_ui():
return FileResponse(STATIC_DIR / "index.html")