This commit is contained in:
V 2026-05-09 16:50:14 +01:00
parent 72348ca5fe
commit 8fccddc815
4 changed files with 5 additions and 11 deletions

View File

@ -1,6 +0,0 @@
def main():
print("Hello from rate-limiters!")
if __name__ == "__main__":
main()

View File

@ -25,7 +25,6 @@ class RateLimiterMiddleware:
if not limiter:
limiter = self.clients.setdefault(client_ip, AsyncTokenBucketLimiter(10, 10))
self.clients[client_ip] = limiter
try:
async with limiter:
@ -48,4 +47,6 @@ routes = [Route("/", main)]
middleware = [Middleware(RateLimiterMiddleware)]
app = Starlette(routes=routes, middleware=middleware)
def create_app() -> Starlette:
return Starlette(routes=routes, middleware=middleware)

View File

@ -1,3 +1,3 @@
#!/bin/bash
uvicorn --host 0.0.0.0 --port 8001 --reload middleware_starlette:app
uvicorn --host 0.0.0.0 --port 8001 --reload --factory middleware_starlette:create_app

View File

@ -1,9 +1,8 @@
from time import sleep
from starlette.applications import Starlette
from starlette.testclient import TestClient
from middleware_starlette import app, RateLimiterMiddleware, routes
from middleware_starlette import app
def test_app_runs():
client = TestClient(app)