예제 #1
0
def setup(app: FastAPI):
    """
    Install skill designer UI routes and CORS middleware

    @param app:
    @return:
    """

    # CORS middleware to allow requests from dev and prod UI
    app.add_middleware(
        CORSMiddleware,
        allow_origins=[
            "http://*****:*****@app.on_event("startup")
    async def startup():
        # Prime the push notification generator
        await notifier.generator.asend(None)

        # Silence the websocket.protocol logger
        logging.getLogger("websockets").setLevel(logging.CRITICAL)

        # Setup a queue that passes log records to websockets
        queue = asyncio.Queue()
        handler = logging.handlers.QueueHandler(queue)
        formatter = logging.Formatter("%(levelname)-8s %(name)s - %(message)s")
        handler.setLevel(logger.level)
        handler.setFormatter(formatter)
        logger.addHandler(handler)
        asyncio.ensure_future(notifier.worker(queue))

    # Root UI
    app.mount("/",
              StaticFiles(directory=str(UI_ROOT), html=True),
              name="Skill UI")
예제 #2
0
def create_app():

    conf = configuration.get()
    logger.setup(conf.log_level)

    app = FastAPI()

    @app.on_event("startup")
    async def startup_event():
        try:
            app.redis_cache = await aioredis.create_redis(
                "redis://localhost:6379")
        except Exception:
            asyncio.get_event_loop().stop()
            asyncio.get_event_loop().close()

    app.add_middleware(CORSMiddleware, allow_origins=["*"])
    app.include_router(base_router, tags=["index"])
    app.add_websocket_route("/chat/ws/{chat_id}", WebSocketEndpointCustom)

    return app
예제 #3
0
파일: api.py 프로젝트: slooppe/bountydns
for r, ropts in routers:
    logger.debug(f"[email protected] - Registering router {str(r)} {str(ropts)}")
    main_router.include_router(r, **ropts)

logger.debug(f"[email protected] - Registering main router {str(r)} {str(ropts)}")

api.include_router(main_router, prefix=config.API_V1_STR)

from starlette.websockets import WebSocket

# public broadcast

if int(environ.get("BROADCAST_ENABLED", 0)) == 1:
    logger.info("[email protected] - Registering broadcast routers")
    api.add_websocket_route("/broadcast",
                            broadcast_index,
                            name="broadcast.index")
    api.add_websocket_route("/broadcast/auth",
                            broadcast_auth,
                            name="broadcast.auth.index")


@api.get("/")
async def webui_redir():
    return RedirectResponse(url="/landing/", status_code=302)


# served by nginx
if Path(landing_dir("index.html")).is_file():
    logger.info("[email protected] - Registering landing routers")
예제 #4
0
import strawberry
from fastapi import FastAPI
from strawberry.asgi import GraphQL


@strawberry.type
class User:
    name: str
    age: int


@strawberry.type
class Query:
    @strawberry.field
    def user(self) -> User:
        return User(name="Patrick", age=100)


schema = strawberry.Schema(query=Query)

graphql_app = GraphQL(schema)

app = FastAPI()
app.add_route("/graphql", graphql_app)
app.add_websocket_route("/graphql", graphql_app)
예제 #5
0
    description="API documents for guild.randosoru.me",
    version="0.5.6",
    docs_url=None,
    redoc_url="/doc",
)

sio_app = socketio.ASGIApp(sio_router.sio)

# CORS
app.add_middleware(
    CORSMiddleware,
    allow_origins=origins,
    allow_credentials=True,
    allow_methods=["*"],
    allow_headers=["*"],
)
#

app.include_router(oauth.router)
app.include_router(user.router)
app.include_router(form.router)
app.include_router(bot.router)

app.add_route("/socket.io/", route=sio_app, methods=["GET", "POST"])
app.add_websocket_route("/socket.io/", sio_app)


@app.get("/")
def index():
    return {"version": app.version}
예제 #6
0
async def event_bus_client(event_bus):
    app = FastAPI()
    app.add_websocket_route('/ws', event_bus.accept)

    async with TestClient(app) as test_client:
        yield test_client
예제 #7
0
import websocket

from pydantic import BaseModel
from fastapi import FastAPI, Body, File, UploadFile, Response, Cookie, Request, Depends, Header, HTTPException
from fastapi.responses import RedirectResponse

from fastapi.logger import logger
import logging

from starlette.middleware.cors import CORSMiddleware
from starlette import status

import datetime

app = FastAPI()
app.add_websocket_route("/ws/{token}", websocket.EndPoint)
app.add_websocket_route("/ws-battle", websocket.BattleEndPoint)

app.add_middleware(
    CORSMiddleware,
    allow_origins=["*"],  # FIXME for production
    allow_credentials=True,
    allow_methods=["*"],
    allow_headers=["*"],
)

fh = logging.FileHandler('log.log')

logger.addHandler(fh)

connections = ''#websocket.Connections()