コード例 #1
0
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
コード例 #2
0
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
コード例 #3
0
ファイル: __init__.py プロジェクト: GArmane/iheroes
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
コード例 #4
0
ファイル: app.py プロジェクト: gustavorodarte/weather-api
def _register_routers(app: FastAPI) -> FastAPI:
    app.include_router(root.router)
    app.include_router(weather.router, prefix="/weather")
    return app
コード例 #5
0
ファイル: __init__.py プロジェクト: NEWME0/wsconnect
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()
コード例 #6
0
def _register_routers(app: FastAPI) -> FastAPI:
    app.include_router(root.router)
    app.include_router(todo.router, prefix="/todo")
    return app
コード例 #7
0
    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)
コード例 #8
0
ファイル: main.py プロジェクト: neversi/temp_app
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,
)
コード例 #9
0
def register_routers(app: FastAPI) -> FastAPI:
    app.include_router(root.router)
    return app
コード例 #10
0
    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):