Coverage for dormatory/api/main.py: 86%
22 statements
« prev ^ index » next coverage.py v7.10.1, created at 2025-08-04 00:22 +0000
« prev ^ index » next coverage.py v7.10.1, created at 2025-08-04 00:22 +0000
1"""
2DORMATORY FastAPI Application
4Main FastAPI application for the DORMATORY hierarchical data storage API.
5"""
7from fastapi import FastAPI
8from fastapi.middleware.cors import CORSMiddleware
10from .routes import objects, types, links, permissions, versioning, attributes
11from .dependencies import engine
12from dormatory.models.dormatory_model import create_tables
14# Create FastAPI app
15app = FastAPI(
16 title="DORMATORY API",
17 description="API for storing and querying structured hierarchical data using flat tables",
18 version="0.1.0",
19 docs_url="/docs",
20 redoc_url="/redoc"
21)
23# Add CORS middleware
24app.add_middleware(
25 CORSMiddleware,
26 allow_origins=["*"],
27 allow_credentials=True,
28 allow_methods=["*"],
29 allow_headers=["*"],
30)
32# Create database tables on startup
33@app.on_event("startup")
34async def startup_event():
35 """Create database tables on application startup."""
36 create_tables(engine)
38# Include routers
39app.include_router(objects.router, prefix="/api/v1/objects", tags=["objects"])
40app.include_router(types.router, prefix="/api/v1/types", tags=["types"])
41app.include_router(links.router, prefix="/api/v1/links", tags=["links"])
42app.include_router(permissions.router, prefix="/api/v1/permissions", tags=["permissions"])
43app.include_router(versioning.router, prefix="/api/v1/versioning", tags=["versioning"])
44app.include_router(attributes.router, prefix="/api/v1/attributes", tags=["attributes"])
47@app.get("/")
48async def root():
49 """Root endpoint with API information."""
50 return {
51 "message": "Welcome to DORMATORY API",
52 "version": "0.1.0",
53 "docs": "/docs",
54 "description": "API for hierarchical data storage using flat tables"
55 }
58@app.get("/health")
59async def health_check():
60 """Health check endpoint."""
61 return {"status": "healthy", "service": "dormatory-api"}