fastapi-signals

Signalling for FastAPI.

motivation

usage

add middleware

from fastapi_signals import SignalMiddleware, signal
app = FastAPI()
app.add_midleware(SignalMiddleware, handler=signal)

add handler

from fastapi_signals import signal
import asyncio

@signal.register
async def handler():
    asyncio.sleep(3)
    print('Heyy, it works!')

fire signal in function

from fastapi_signals import initiate_signal
@app.get("/")
async def endpoint(request):
    await initiate_signal('handler',some_data="value")
    return {"status":"Success"}

GitHub

View Github