Aasher commited on
Commit
d47e86b
·
1 Parent(s): 83e5aa0

feat(middleware): add process time header middleware for request timing

Browse files
Files changed (1) hide show
  1. main.py +14 -2
main.py CHANGED
@@ -1,4 +1,4 @@
1
- from fastapi import FastAPI
2
  from fastapi.middleware.cors import CORSMiddleware
3
  from contextlib import asynccontextmanager
4
 
@@ -7,6 +7,8 @@ from api.routers import memory
7
  from db.session import create_db_and_tables
8
  from core.config import get_settings
9
 
 
 
10
  settings = get_settings()
11
 
12
  @asynccontextmanager
@@ -25,7 +27,17 @@ app = FastAPI(
25
  lifespan=lifespan
26
  )
27
 
28
- # --- Middleware ---
 
 
 
 
 
 
 
 
 
 
29
  app.add_middleware(
30
  CORSMiddleware,
31
  allow_origins=[settings.FRONTEND_URL, "http://127.0.0.1:3000"],
 
1
+ from fastapi import FastAPI, Request
2
  from fastapi.middleware.cors import CORSMiddleware
3
  from contextlib import asynccontextmanager
4
 
 
7
  from db.session import create_db_and_tables
8
  from core.config import get_settings
9
 
10
+ import time
11
+
12
  settings = get_settings()
13
 
14
  @asynccontextmanager
 
27
  lifespan=lifespan
28
  )
29
 
30
+ # --- Middlewares ---
31
+
32
+ @app.middleware("http")
33
+ async def add_process_time_header(request: Request, call_next):
34
+ start_time = time.time()
35
+ response = await call_next(request)
36
+ process_time = time.time() - start_time
37
+ response.headers["X-Process-Time"] = str(process_time)
38
+ print(f"INFO: Request {request.method} {request.url.path} processed in {process_time:.4f} sec")
39
+ return response
40
+
41
  app.add_middleware(
42
  CORSMiddleware,
43
  allow_origins=[settings.FRONTEND_URL, "http://127.0.0.1:3000"],