@@ -26,16 +26,18 @@ class RequestValidator(BaseValidator):
2626
2727 def validate (self , request ):
2828 try :
29- path , operation , _ , _ , _ = self ._find_path (request )
29+ path , operation , _ , path_result , _ = self ._find_path (request )
3030 # don't process if operation errors
3131 except PathError as exc :
32- return RequestValidationResult ([exc , ], None , None , None )
32+ return RequestValidationResult (errors = [exc , ])
3333
3434 try :
3535 security = self ._get_security (request , operation )
3636 except InvalidSecurity as exc :
37- return RequestValidationResult ([exc , ], None , None , None )
37+ return RequestValidationResult (errors = [exc , ])
3838
39+ request .parameters .path = request .parameters .path or \
40+ path_result .variables
3941 params , params_errors = self ._get_parameters (
4042 request , chain (
4143 iteritems (operation .parameters ),
@@ -46,30 +48,43 @@ def validate(self, request):
4648 body , body_errors = self ._get_body (request , operation )
4749
4850 errors = params_errors + body_errors
49- return RequestValidationResult (errors , body , params , security )
51+ return RequestValidationResult (
52+ errors = errors ,
53+ body = body ,
54+ parameters = params ,
55+ security = security ,
56+ )
5057
5158 def _validate_parameters (self , request ):
5259 try :
53- path , operation , _ , _ , _ = self ._find_path (request )
60+ path , operation , _ , path_result , _ = self ._find_path (request )
5461 except PathError as exc :
55- return RequestValidationResult ([exc , ], None , None )
62+ return RequestValidationResult (errors = [exc , ])
5663
64+ request .parameters .path = request .parameters .path or \
65+ path_result .variables
5766 params , params_errors = self ._get_parameters (
5867 request , chain (
5968 iteritems (operation .parameters ),
6069 iteritems (path .parameters )
6170 )
6271 )
63- return RequestValidationResult (params_errors , None , params , None )
72+ return RequestValidationResult (
73+ errors = params_errors ,
74+ parameters = params ,
75+ )
6476
6577 def _validate_body (self , request ):
6678 try :
6779 _ , operation , _ , _ , _ = self ._find_path (request )
6880 except PathError as exc :
69- return RequestValidationResult ([exc , ], None , None )
81+ return RequestValidationResult (errors = [exc , ])
7082
7183 body , body_errors = self ._get_body (request , operation )
72- return RequestValidationResult (body_errors , body , None , None )
84+ return RequestValidationResult (
85+ errors = body_errors ,
86+ body = body ,
87+ )
7388
7489 def _get_security (self , request , operation ):
7590 security = operation .security or self .spec .security
0 commit comments