Pythonのフレームワークであるflaskを利用していると、flask_restfulでREST APIを実装し、flask_loginでアクセス制御するという使い方があると思います。
例えばログインしている場合のみアクセスできるメソッドの場合、頭に@login_requiredを記載します。以下のようになります。
from flask_restful import Resource
from flask_login import login_required
class TestApi(Resource):
@login_required
def get(self, id):
...
@login_required
def post(self, id):
...
@login_required
def put(self, id):
...
@login_required
def delete(self, id):
...
メソッド1つ1つに@login_requiredを記述するのは冗長なので、クラスに付与できないかflask_restfulのリファレンスを調べました。
API Docs — Flask-RESTful 0.3.10 documentation
decoratorsというパラメータがありましたので、これを使います。使用例は以下です。
from flask_restful import Resource
from flask_login import login_required
class TestApi(Resource):
decorators = [login_required]
def get(self, id):
...
def post(self, id):
...
def put(self, id):
...
def delete(self, id):
...
スッキリしましたね。
ちなみにflask_praetorianもflask_loginと同じように使えます。
from flask_restful import Resource
from flask_praetorian import auth_required
class TestApi(Resource):
decorators = [auth_required]