Dmitry Sazhnev
Dmitry Sazhnev

Reputation: 383

GET params are not recieved in Flask-RESTful + webargs

I'm using Resource class from flask restful and use_kwargs decorator for get method. Here is the code:

@api.resource('/route/')
class API(Resource):
    @use_kwargs({'param': fields.Str(missing='default_val')}
    def get(self, param):
        return {'param': param}

But I can not pass parameters via URL. It always returns missing value. These URL's don't work:

 /route?param=smth
 /route/?param=smth

Same for use_args. However I can see my params in flask.request.args.

Upvotes: 1

Views: 836

Answers (1)

Jérôme
Jérôme

Reputation: 14724

Since webargs 6, you need to specify the location explicitly.

@api.resource('/route/')
class API(Resource):
    @use_kwargs({'param': fields.Str(missing='default_val')}, location="query")
    def get(self, param):
        return {'param': param}

See https://stackoverflow.com/a/62503287/4653485.

Upvotes: 3

Related Questions