def fastapi_app(database, db_uri): app = FastAPI( title="orchestrator", openapi_url="/openapi/openapi.yaml", docs_url="/api/docs", redoc_url="/api/redoc", default_response_class=JSONResponse, ) app.include_router(api_router, prefix="/api") app.add_middleware(SessionMiddleware, secret_key=app_settings.SESSION_SECRET) app.add_middleware(DBSessionMiddleware, database=db) origins = app_settings.CORS_ORIGINS.split(",") app.add_middleware( CORSMiddleware, allow_origins=origins, allow_methods=app_settings.CORS_ALLOW_METHODS, allow_headers=app_settings.CORS_ALLOW_HEADERS, expose_headers=app_settings.CORS_EXPOSE_HEADERS, ) app.add_exception_handler(FormException, form_error_handler) app.add_exception_handler(ProblemDetailException, problem_detail_handler) return app
def create_dynamic_router(schema: Schema, app: FastAPI, old_slug: str = None): router = APIRouter() route_get_entities(router=router, schema=schema) route_get_entity(router=router, schema=schema) route_create_entity(router=router, schema=schema) route_update_entity(router=router, schema=schema) route_delete_entity(router=router, schema=schema) router_routes = [(r.path, r.methods) for r in router.routes] routes_to_remove = [] for route in app.routes: if (route.path, route.methods) in router_routes: routes_to_remove.append(route) elif old_slug and (route.path.startswith(f'/entity/{old_slug}/') or route.path == f'/entity/{old_slug}'): routes_to_remove.append(route) for route in routes_to_remove: app.routes.remove(route) app.include_router(router, prefix='/entity') app.openapi_schema = None
def register_routers(settings: Settings, deps: Dependencies, app: FastAPI) -> FastAPI: app.include_router(root.build_router(settings), tags=["Health Check"]) app.include_router(account.build_router(settings, deps), prefix="/account") app.include_router(hero.build_router(deps), prefix="/hero", tags=["Hero"]) return app
def _register_routers(app: FastAPI) -> FastAPI: app.include_router(root.router) app.include_router(weather.router, prefix="/weather") return app
from fastapi.responses import JSONResponse from fastapi.applications import FastAPI from app.routing import router from app.services import sso_client app = FastAPI( title='Websocket channels API', version='0.1.1', description='...', ) app.include_router(prefix='', router=router) @app.get('/') async def health(): return JSONResponse(status_code=200, content={'health': True}) @app.on_event('startup') async def on_startup(): # Initialize sso session await sso_client.SSOClientSession.initialize_base_session() @app.on_event('shutdown') async def on_shutdown(): # Finalize sso session await sso_client.SSOClientSession.finalize_base_session()
def _register_routers(app: FastAPI) -> FastAPI: app.include_router(root.router) app.include_router(todo.router, prefix="/todo") return app
redoc_url="/api/redoc", version=GIT_COMMIT_HASH if GIT_COMMIT_HASH else "0.1.0", default_response_class=JSONResponse, # root_path="/prod", servers=[ { "url": "https://postgres-boilerplate.renedohmen.nl", "description": "Test environment", } if os.getenv("ENVIRONMENT") == "production" else { "url": "/", "description": "Local environment" }, ], ) app.include_router(api_router, prefix="/api") app.add_middleware(SessionMiddleware, secret_key=app_settings.SESSION_SECRET) app.add_middleware(DBSessionMiddleware, database=db) origins = app_settings.CORS_ORIGINS.split(",") app.add_middleware( CORSMiddleware, allow_origins=origins, allow_methods=app_settings.CORS_ALLOW_METHODS, allow_headers=app_settings.CORS_ALLOW_HEADERS, expose_headers=app_settings.CORS_EXPOSE_HEADERS, ) app.add_exception_handler(FormException, form_error_handler) app.add_exception_handler(ProblemDetailException, problem_detail_handler)
from .exceptions import UserNotExist, add_exceptions from .redis import redis_cache app = FastAPI() origins = ["*"] app.add_middleware( CORSMiddleware, allow_origins=origins, allow_credentials=True, allow_methods=["*"], allow_headers=["*"], ) app.include_router(students.router) app.include_router(subjects.router) app.include_router(proctors.router) app.include_router(sessions.router) app.include_router(session.router) app.mount('/ws', socket_app) register_tortoise( app, db_url=Config.SQLALCHEMY_DATABASE_URL, modules={'models': ['app.models']}, generate_schemas=False, add_exception_handlers=True, )
def register_routers(app: FastAPI) -> FastAPI: app.include_router(root.router) return app
OAuth2, OAuth2PasswordRequestData, OAuth2PasswordRequestForm, ) from pydantic import BaseModel from starlette.responses import HTMLResponse, JSONResponse, PlainTextResponse from starlette.status import HTTP_202_ACCEPTED from starlette.testclient import TestClient from .endpoints.a import router as router_a from .endpoints.b import router as router_b app = FastAPI() app.include_router(router_a) app.include_router(router_b, prefix="/b") @app.get("/text") def get_text(): return "Hello World" @app.get("/path/{item_id}") def get_id(item_id): return item_id @app.get("/path/str/{item_id}") def get_str_id(item_id: str):