Flask Restful add resource parameters
Since version 0.3.3 (released May 22, 2015), add_resource()
is able to pass parameters to your Resource
constructor.
Following the original example, here is the views.py
:
from flask.ext.restful import Resourceclass ApiPage(Resource): def __init__(self, bar): self.bar = bar def get(self): serialized = str(my_bar) return serialized
And the relevant code for main.py
:
# ...my_bar = Bar()api.add_resource(views.ApiPage, '/api/my/end/point/', resource_class_kwargs={'bar': my_bar})
In version 0.3.5 documentation you can do it this way
# in main.py...my_bar = Bar()api.add_resource(views.ApiPage, '/api/my/end/point/', resource_class_kwargs={'my_bar': my_bar})
pass your object in the add_resource
method and use it in the resource init method
and in your class init
class ApiPage(Resource): def __init__(self, **kwargs): self.my_bar= kwargs['my_bar']
After struggling with the same problem I found you can use add_url_rule
coupled with as_view
So in your case I guess the code would be something like
class ApiPage(Resource): def __init__(self, bar=None) self.__my_bar=bar def get(self): serialized = str(self.__my_bar) return serializedmy_bar = Bar()app = Flask(__name__)app.add_url_rule('/api/my/end/point/', bar=my_bar)api = Api(app)