Skip to content

Commit f039a20

Browse files
Revert "feat(event-handler): add per-route validation support (#7965)"
This reverts commit 36a91b7.
1 parent 36a91b7 commit f039a20

File tree

5 files changed

+4
-460
lines changed

5 files changed

+4
-460
lines changed

aws_lambda_powertools/event_handler/api_gateway.py

Lines changed: 2 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -379,7 +379,6 @@ def __init__(
379379
security: list[dict[str, list[str]]] | None = None,
380380
openapi_extensions: dict[str, Any] | None = None,
381381
deprecated: bool = False,
382-
enable_validation: bool | None = None,
383382
custom_response_validation_http_code: HTTPStatus | None = None,
384383
middlewares: list[Callable[..., Response]] | None = None,
385384
):
@@ -422,8 +421,6 @@ def __init__(
422421
Additional OpenAPI extensions as a dictionary.
423422
deprecated: bool
424423
Whether or not to mark this route as deprecated in the OpenAPI schema
425-
enable_validation: bool | None, optional
426-
Enable or disable validation for this specific route. If None, inherits from resolver setting.
427424
custom_response_validation_http_code: int | HTTPStatus | None, optional
428425
Whether to have custom http status code for this route if response validation fails
429426
middlewares: list[Callable[..., Response]] | None
@@ -453,7 +450,6 @@ def __init__(
453450
self.middlewares = middlewares or []
454451
self.operation_id = operation_id or self._generate_operation_id()
455452
self.deprecated = deprecated
456-
self.enable_validation = enable_validation
457453

458454
# _middleware_stack_built is used to ensure the middleware stack is only built once.
459455
self._middleware_stack_built = False
@@ -540,21 +536,15 @@ def _build_middleware_stack(self, router_middlewares: list[Callable[..., Any]],
540536

541537
all_middlewares = []
542538

543-
# Determine if validation should be enabled for this route
544-
# If route has explicit enable_validation setting, use it; otherwise, use resolver's global setting
545-
route_validation_enabled = (
546-
self.enable_validation if self.enable_validation is not None else app._enable_validation
547-
)
548-
549539
# Add request validation middleware first if validation is enabled
550-
if route_validation_enabled and hasattr(app, "_request_validation_middleware"):
540+
if hasattr(app, "_request_validation_middleware"):
551541
all_middlewares.append(app._request_validation_middleware)
552542

553543
# Add user middlewares in the middle
554544
all_middlewares.extend(router_middlewares + self.middlewares)
555545

556546
# Add response validation middleware before the route handler if validation is enabled
557-
if route_validation_enabled and hasattr(app, "_response_validation_middleware"):
547+
if hasattr(app, "_response_validation_middleware"):
558548
all_middlewares.append(app._response_validation_middleware)
559549

560550
logger.debug(f"Building middleware stack: {all_middlewares}")
@@ -1143,7 +1133,6 @@ def route(
11431133
security: list[dict[str, list[str]]] | None = None,
11441134
openapi_extensions: dict[str, Any] | None = None,
11451135
deprecated: bool = False,
1146-
enable_validation: bool | None = None,
11471136
custom_response_validation_http_code: int | HTTPStatus | None = None,
11481137
middlewares: list[Callable[..., Any]] | None = None,
11491138
) -> Callable[[AnyCallableT], AnyCallableT]:
@@ -1206,7 +1195,6 @@ def get(
12061195
security: list[dict[str, list[str]]] | None = None,
12071196
openapi_extensions: dict[str, Any] | None = None,
12081197
deprecated: bool = False,
1209-
enable_validation: bool | None = None,
12101198
custom_response_validation_http_code: int | HTTPStatus | None = None,
12111199
middlewares: list[Callable[..., Any]] | None = None,
12121200
) -> Callable[[AnyCallableT], AnyCallableT]:
@@ -1248,7 +1236,6 @@ def lambda_handler(event, context):
12481236
security,
12491237
openapi_extensions,
12501238
deprecated,
1251-
enable_validation,
12521239
custom_response_validation_http_code,
12531240
middlewares,
12541241
)
@@ -1269,7 +1256,6 @@ def post(
12691256
security: list[dict[str, list[str]]] | None = None,
12701257
openapi_extensions: dict[str, Any] | None = None,
12711258
deprecated: bool = False,
1272-
enable_validation: bool | None = None,
12731259
custom_response_validation_http_code: int | HTTPStatus | None = None,
12741260
middlewares: list[Callable[..., Any]] | None = None,
12751261
) -> Callable[[AnyCallableT], AnyCallableT]:
@@ -1312,7 +1298,6 @@ def lambda_handler(event, context):
13121298
security,
13131299
openapi_extensions,
13141300
deprecated,
1315-
enable_validation,
13161301
custom_response_validation_http_code,
13171302
middlewares,
13181303
)
@@ -1333,7 +1318,6 @@ def put(
13331318
security: list[dict[str, list[str]]] | None = None,
13341319
openapi_extensions: dict[str, Any] | None = None,
13351320
deprecated: bool = False,
1336-
enable_validation: bool | None = None,
13371321
custom_response_validation_http_code: int | HTTPStatus | None = None,
13381322
middlewares: list[Callable[..., Any]] | None = None,
13391323
) -> Callable[[AnyCallableT], AnyCallableT]:
@@ -1376,7 +1360,6 @@ def lambda_handler(event, context):
13761360
security,
13771361
openapi_extensions,
13781362
deprecated,
1379-
enable_validation,
13801363
custom_response_validation_http_code,
13811364
middlewares,
13821365
)
@@ -1397,7 +1380,6 @@ def delete(
13971380
security: list[dict[str, list[str]]] | None = None,
13981381
openapi_extensions: dict[str, Any] | None = None,
13991382
deprecated: bool = False,
1400-
enable_validation: bool | None = None,
14011383
custom_response_validation_http_code: int | HTTPStatus | None = None,
14021384
middlewares: list[Callable[..., Any]] | None = None,
14031385
) -> Callable[[AnyCallableT], AnyCallableT]:
@@ -1439,7 +1421,6 @@ def lambda_handler(event, context):
14391421
security,
14401422
openapi_extensions,
14411423
deprecated,
1442-
enable_validation,
14431424
custom_response_validation_http_code,
14441425
middlewares,
14451426
)
@@ -1460,7 +1441,6 @@ def patch(
14601441
security: list[dict[str, list[str]]] | None = None,
14611442
openapi_extensions: dict[str, Any] | None = None,
14621443
deprecated: bool = False,
1463-
enable_validation: bool | None = None,
14641444
custom_response_validation_http_code: int | HTTPStatus | None = None,
14651445
middlewares: list[Callable] | None = None,
14661446
) -> Callable[[AnyCallableT], AnyCallableT]:
@@ -1505,7 +1485,6 @@ def lambda_handler(event, context):
15051485
security,
15061486
openapi_extensions,
15071487
deprecated,
1508-
enable_validation,
15091488
custom_response_validation_http_code,
15101489
middlewares,
15111490
)
@@ -1526,7 +1505,6 @@ def head(
15261505
security: list[dict[str, list[str]]] | None = None,
15271506
openapi_extensions: dict[str, Any] | None = None,
15281507
deprecated: bool = False,
1529-
enable_validation: bool | None = None,
15301508
custom_response_validation_http_code: int | HTTPStatus | None = None,
15311509
middlewares: list[Callable] | None = None,
15321510
) -> Callable[[AnyCallableT], AnyCallableT]:
@@ -1570,7 +1548,6 @@ def lambda_handler(event, context):
15701548
security,
15711549
openapi_extensions,
15721550
deprecated,
1573-
enable_validation,
15741551
custom_response_validation_http_code,
15751552
middlewares,
15761553
)
@@ -2592,7 +2569,6 @@ def route(
25922569
security: list[dict[str, list[str]]] | None = None,
25932570
openapi_extensions: dict[str, Any] | None = None,
25942571
deprecated: bool = False,
2595-
enable_validation: bool | None = None,
25962572
custom_response_validation_http_code: int | HTTPStatus | None = None,
25972573
middlewares: list[Callable[..., Any]] | None = None,
25982574
) -> Callable[[AnyCallableT], AnyCallableT]:
@@ -2627,7 +2603,6 @@ def register_resolver(func: AnyCallableT) -> AnyCallableT:
26272603
security,
26282604
openapi_extensions,
26292605
deprecated,
2630-
enable_validation,
26312606
custom_response_validation_http_code,
26322607
middlewares,
26332608
)
@@ -3155,7 +3130,6 @@ def route(
31553130
security: list[dict[str, list[str]]] | None = None,
31563131
openapi_extensions: dict[str, Any] | None = None,
31573132
deprecated: bool = False,
3158-
enable_validation: bool | None = None,
31593133
custom_response_validation_http_code: int | HTTPStatus | None = None,
31603134
middlewares: list[Callable[..., Any]] | None = None,
31613135
) -> Callable[[AnyCallableT], AnyCallableT]:
@@ -3183,7 +3157,6 @@ def register_route(func: AnyCallableT) -> AnyCallableT:
31833157
frozen_security,
31843158
frozen_openapi_extensions,
31853159
deprecated,
3186-
enable_validation,
31873160
custom_response_validation_http_code,
31883161
)
31893162

@@ -3273,7 +3246,6 @@ def route(
32733246
security: list[dict[str, list[str]]] | None = None,
32743247
openapi_extensions: dict[str, Any] | None = None,
32753248
deprecated: bool = False,
3276-
enable_validation: bool | None = None,
32773249
custom_response_validation_http_code: int | HTTPStatus | None = None,
32783250
middlewares: list[Callable[..., Any]] | None = None,
32793251
) -> Callable[[AnyCallableT], AnyCallableT]:
@@ -3294,7 +3266,6 @@ def route(
32943266
security,
32953267
openapi_extensions,
32963268
deprecated,
3297-
enable_validation,
32983269
custom_response_validation_http_code,
32993270
middlewares,
33003271
)

aws_lambda_powertools/event_handler/bedrock_agent.py

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,6 @@ def get( # type: ignore[override]
124124
include_in_schema: bool = True,
125125
openapi_extensions: dict[str, Any] | None = None,
126126
deprecated: bool = False,
127-
enable_validation: bool | None = None,
128127
custom_response_validation_http_code: int | HTTPStatus | None = None,
129128
middlewares: list[Callable[..., Any]] | None = None,
130129
) -> Callable[[Callable[..., Any]], Callable[..., Any]]:
@@ -145,7 +144,6 @@ def get( # type: ignore[override]
145144
security,
146145
openapi_extensions,
147146
deprecated,
148-
enable_validation,
149147
custom_response_validation_http_code,
150148
middlewares,
151149
)
@@ -167,7 +165,6 @@ def post( # type: ignore[override]
167165
include_in_schema: bool = True,
168166
openapi_extensions: dict[str, Any] | None = None,
169167
deprecated: bool = False,
170-
enable_validation: bool | None = None,
171168
custom_response_validation_http_code: int | HTTPStatus | None = None,
172169
middlewares: list[Callable[..., Any]] | None = None,
173170
):
@@ -188,7 +185,6 @@ def post( # type: ignore[override]
188185
security,
189186
openapi_extensions,
190187
deprecated,
191-
enable_validation,
192188
custom_response_validation_http_code,
193189
middlewares,
194190
)
@@ -210,7 +206,6 @@ def put( # type: ignore[override]
210206
include_in_schema: bool = True,
211207
openapi_extensions: dict[str, Any] | None = None,
212208
deprecated: bool = False,
213-
enable_validation: bool | None = None,
214209
custom_response_validation_http_code: int | HTTPStatus | None = None,
215210
middlewares: list[Callable[..., Any]] | None = None,
216211
):
@@ -231,7 +226,6 @@ def put( # type: ignore[override]
231226
security,
232227
openapi_extensions,
233228
deprecated,
234-
enable_validation,
235229
custom_response_validation_http_code,
236230
middlewares,
237231
)
@@ -253,7 +247,6 @@ def patch( # type: ignore[override]
253247
include_in_schema: bool = True,
254248
openapi_extensions: dict[str, Any] | None = None,
255249
deprecated: bool = False,
256-
enable_validation: bool | None = None,
257250
custom_response_validation_http_code: int | HTTPStatus | None = None,
258251
middlewares: list[Callable] | None = None,
259252
):
@@ -274,7 +267,6 @@ def patch( # type: ignore[override]
274267
security,
275268
openapi_extensions,
276269
deprecated,
277-
enable_validation,
278270
custom_response_validation_http_code,
279271
middlewares,
280272
)
@@ -296,7 +288,6 @@ def delete( # type: ignore[override]
296288
include_in_schema: bool = True,
297289
openapi_extensions: dict[str, Any] | None = None,
298290
deprecated: bool = False,
299-
enable_validation: bool | None = None,
300291
custom_response_validation_http_code: int | HTTPStatus | None = None,
301292
middlewares: list[Callable[..., Any]] | None = None,
302293
):
@@ -317,7 +308,6 @@ def delete( # type: ignore[override]
317308
security,
318309
openapi_extensions,
319310
deprecated,
320-
enable_validation,
321311
custom_response_validation_http_code,
322312
middlewares,
323313
)

aws_lambda_powertools/event_handler/http_resolver.py

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -290,18 +290,12 @@ async def _run_middleware_chain_async(self, route: Route) -> Response:
290290
# Build middleware list
291291
all_middlewares: list[Callable[..., Any]] = []
292292

293-
# Determine if validation should be enabled for this route
294-
# If route has explicit enable_validation setting, use it; otherwise, use resolver's global setting
295-
route_validation_enabled = (
296-
route.enable_validation if route.enable_validation is not None else self._enable_validation
297-
)
298-
299-
if route_validation_enabled and hasattr(self, "_request_validation_middleware"):
293+
if hasattr(self, "_request_validation_middleware"):
300294
all_middlewares.append(self._request_validation_middleware)
301295

302296
all_middlewares.extend(self._router_middlewares + route.middlewares)
303297

304-
if route_validation_enabled and hasattr(self, "_response_validation_middleware"):
298+
if hasattr(self, "_response_validation_middleware"):
305299
all_middlewares.append(self._response_validation_middleware)
306300

307301
# Create the final handler that calls the route function

0 commit comments

Comments
 (0)