@@ -36,8 +36,7 @@ def __init__(
36
36
37
37
def validate (self , request ):
38
38
try :
39
- path = self ._get_path (request )
40
- operation = self ._get_operation (request )
39
+ path , operation , _ , _ , _ = self ._find_path (request )
41
40
# don't process if operation errors
42
41
except (InvalidServer , InvalidPath , InvalidOperation ) as exc :
43
42
return RequestValidationResult ([exc , ], None , None , None )
@@ -61,8 +60,7 @@ def validate(self, request):
61
60
62
61
def _validate_parameters (self , request ):
63
62
try :
64
- path = self ._get_path (request )
65
- operation = self ._get_operation (request )
63
+ path , operation , _ , _ , _ = self ._find_path (request )
66
64
except (InvalidServer , InvalidPath , InvalidOperation ) as exc :
67
65
return RequestValidationResult ([exc , ], None , None )
68
66
@@ -76,7 +74,7 @@ def _validate_parameters(self, request):
76
74
77
75
def _validate_body (self , request ):
78
76
try :
79
- operation = self ._get_operation (request )
77
+ _ , operation , _ , _ , _ = self ._find_path (request )
80
78
except (InvalidServer , InvalidOperation ) as exc :
81
79
return RequestValidationResult ([exc , ], None , None )
82
80
@@ -90,15 +88,17 @@ def _get_operation_pattern(self, request):
90
88
server .default_url , request .full_url_pattern
91
89
)
92
90
93
- def _get_path (self , request ):
91
+ def _find_path (self , request ):
94
92
operation_pattern = self ._get_operation_pattern (request )
95
93
96
- return self .spec [operation_pattern ]
94
+ path = self .spec [operation_pattern ]
95
+ path_variables = {}
96
+ operation = self .spec .get_operation (operation_pattern , request .method )
97
+ servers = path .servers or operation .servers or self .spec .servers
98
+ server = servers [0 ]
99
+ server_variables = {}
97
100
98
- def _get_operation (self , request ):
99
- operation_pattern = self ._get_operation_pattern (request )
100
-
101
- return self .spec .get_operation (operation_pattern , request .method )
101
+ return path , operation , server , path_variables , server_variables
102
102
103
103
def _get_security (self , request , operation ):
104
104
security = operation .security or self .spec .security
0 commit comments