플라스크에서 AOP 처리하기
exception.py
class InvalidAPIUsage(Exception):
status_code = 400
def __init__(self, message, status_code=None, payload=None):
super().__init__()
self.message = message
if status_code:
self.status_code = status_code
self.payload = payload
def to_dict(self):
rv = dict(self.payload or ())
rv['message'] = self.message
return rv
- 다음과 같은 예외를 만들어 준다.
app.py
@app.errorhandler(InvalidAPIUsage)
def invalid_api_usage(e):
return jsonify(error=str(e.to_dict()))
@app.route("/")
def index():
raise InvalidAPIUsage("No user id provided!")
- 다음과 같이
errorhandler
에 생성한 예외를 등록한 후에, 예외를 호출하면 처리하는 것을 확인할 수 있다.