@@ -100,7 +100,7 @@ def _get_parameters(self, request, params):
100100 continue
101101 seen .add ((param_name , param .location .value ))
102102 try :
103- raw_value = param . get_raw_value ( request )
103+ raw_value = self . _get_parameter_value ( param , request )
104104 except MissingRequiredParameter as exc :
105105 errors .append (exc )
106106 continue
@@ -141,7 +141,7 @@ def _get_body(self, request, operation):
141141 return None , [exc , ]
142142
143143 try :
144- raw_body = operation .request_body . get_value ( request )
144+ raw_body = self . _get_body_value ( operation .request_body , request )
145145 except MissingRequestBody as exc :
146146 return None , [exc , ]
147147
@@ -162,6 +162,27 @@ def _get_body(self, request, operation):
162162
163163 return body , []
164164
165+ def _get_parameter_value (self , param , request ):
166+ location = request .parameters [param .location .value ]
167+
168+ if param .name not in location :
169+ if param .required :
170+ raise MissingRequiredParameter (param .name )
171+
172+ raise MissingParameter (param .name )
173+
174+ if param .aslist and param .explode :
175+ if hasattr (location , 'getall' ):
176+ return location .getall (param .name )
177+ return location .getlist (param .name )
178+
179+ return location [param .name ]
180+
181+ def _get_body_value (self , request_body , request ):
182+ if not request .body and request_body .required :
183+ raise MissingRequestBody (request )
184+ return request .body
185+
165186 def _deserialise (self , param_or_media_type , value ):
166187 return param_or_media_type .deserialise (value )
167188
0 commit comments