Skip to content

Commit 911b87b

Browse files
committed
chore(fastapi): use middleware instead of log_dto
1 parent b19ded6 commit 911b87b

File tree

5 files changed

+14
-36
lines changed

5 files changed

+14
-36
lines changed

ibis-server/app/logger.py

-21
This file was deleted.

ibis-server/app/main.py

+14
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import uuid
2+
13
from fastapi import FastAPI
24
from fastapi.responses import RedirectResponse
35
from loguru import logger
@@ -14,6 +16,18 @@
1416
get_config().init_logger()
1517

1618

19+
@app.middleware("http")
20+
async def request_logger(request, call_next):
21+
with logger.contextualize(request_id=str(uuid.uuid4())):
22+
logger.info("{method} {path}", method=request.method, path=request.url.path)
23+
logger.info("Request params: {params}", params=dict(request.query_params))
24+
logger.info("Request body: {body}", body=(await request.body()).decode("utf-8"))
25+
try:
26+
return await call_next(request)
27+
finally:
28+
logger.info("Request ended")
29+
30+
1731
@app.get("/")
1832
def root():
1933
return RedirectResponse(url="/docs")
-3
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,16 @@
11
from fastapi import APIRouter
22

3-
from app.logger import log_dto
43
from app.mdl.analyzer import analyze, analyze_batch
54
from app.model import AnalyzeSQLBatchDTO, AnalyzeSQLDTO
65

76
router = APIRouter(prefix="/analysis", tags=["analysis"])
87

98

109
@router.get("/sql")
11-
@log_dto
1210
def analyze_sql(dto: AnalyzeSQLDTO) -> list[dict]:
1311
return analyze(dto.manifest_str, dto.sql)
1412

1513

1614
@router.get("/sqls")
17-
@log_dto
1815
def analyze_sql_batch(dto: AnalyzeSQLBatchDTO) -> list[list[dict]]:
1916
return analyze_batch(dto.manifest_str, dto.sqls)

ibis-server/app/routers/v2/connector.py

-7
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
from fastapi.responses import JSONResponse
55

66
from app.dependencies import verify_query_dto
7-
from app.logger import log_dto
87
from app.mdl.rewriter import ExternalEngineRewriter
98
from app.model import (
109
DryPlanDTO,
@@ -22,7 +21,6 @@
2221

2322

2423
@router.post("/{data_source}/query", dependencies=[Depends(verify_query_dto)])
25-
@log_dto
2624
def query(
2725
data_source: DataSource,
2826
dto: QueryDTO,
@@ -42,7 +40,6 @@ def query(
4240

4341

4442
@router.post("/{data_source}/validate/{rule_name}")
45-
@log_dto
4643
def validate(data_source: DataSource, rule_name: str, dto: ValidateDTO) -> Response:
4744
validator = Validator(
4845
Connector(data_source, dto.connection_info, dto.manifest_str),
@@ -53,26 +50,22 @@ def validate(data_source: DataSource, rule_name: str, dto: ValidateDTO) -> Respo
5350

5451

5552
@router.post("/{data_source}/metadata/tables", response_model=list[Table])
56-
@log_dto
5753
def get_table_list(data_source: DataSource, dto: MetadataDTO) -> list[Table]:
5854
metadata = MetadataFactory(data_source, dto.connection_info)
5955
return metadata.get_table_list()
6056

6157

6258
@router.post("/{data_source}/metadata/constraints", response_model=list[Constraint])
63-
@log_dto
6459
def get_constraints(data_source: DataSource, dto: MetadataDTO) -> list[Constraint]:
6560
metadata = MetadataFactory(data_source, dto.connection_info)
6661
return metadata.get_constraints()
6762

6863

6964
@router.post("/dry-plan")
70-
@log_dto
7165
def dry_plan(dto: DryPlanDTO) -> str:
7266
return ExternalEngineRewriter(dto.manifest_str).rewrite(dto.sql)
7367

7468

7569
@router.post("/{data_source}/dry-plan")
76-
@log_dto
7770
def dry_plan_for_data_source(data_source: DataSource, dto: DryPlanDTO) -> str:
7871
return ExternalEngineRewriter(dto.manifest_str, data_source).rewrite(dto.sql)

ibis-server/app/routers/v3/connector.py

-5
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
from fastapi.responses import JSONResponse
55

66
from app.dependencies import verify_query_dto
7-
from app.logger import log_dto
87
from app.mdl.rewriter import EmbeddedEngineRewriter
98
from app.model import (
109
DryPlanDTO,
@@ -20,7 +19,6 @@
2019

2120

2221
@router.post("/{data_source}/query", dependencies=[Depends(verify_query_dto)])
23-
@log_dto
2422
def query(
2523
data_source: DataSource,
2624
dto: QueryDTO,
@@ -43,7 +41,6 @@ def query(
4341

4442

4543
@router.post("/dry-plan")
46-
@log_dto
4744
def dry_plan(dto: DryPlanDTO) -> str:
4845
try:
4946
return EmbeddedEngineRewriter(dto.manifest_str).rewrite(dto.sql)
@@ -52,7 +49,6 @@ def dry_plan(dto: DryPlanDTO) -> str:
5249

5350

5451
@router.post("/{data_source}/dry-plan")
55-
@log_dto
5652
def dry_plan_for_data_source(data_source: DataSource, dto: DryPlanDTO) -> str:
5753
try:
5854
return EmbeddedEngineRewriter(dto.manifest_str, data_source).rewrite(dto.sql)
@@ -61,7 +57,6 @@ def dry_plan_for_data_source(data_source: DataSource, dto: DryPlanDTO) -> str:
6157

6258

6359
@router.post("/{data_source}/validate/{rule_name}")
64-
@log_dto
6560
def validate(data_source: DataSource, rule_name: str, dto: ValidateDTO) -> Response:
6661
try:
6762
validator = Validator(

0 commit comments

Comments
 (0)