Использую Falcon. Подскажите как лучше переработать функцию ответа т.к. текущая реализация меня явно не устраивает. Как минимум вижу один явный косяк. Если мы поймали ошибку, то она ничего не отвечает:
class MyAPI():
def on_post(self, req, resp):
request_json = None
try:
request_json = json.loads(req.stream.read().decode('utf-8')) # do not needed in Python >=3.6
except Exception as e:
log.critical("JSONDecodeError: {0} Exception: {1}".format(req.stream.read().decode('utf-8'), e))
ready_query = make_query(request_json)
resp.body = get_list_of_transactions_from_db(ready_query, request_json)
Вообще стоит ли часть:
ready_query = make_query(request_json)
resp.body = get_list_of_transactions_from_db(ready_query, request_json)
засунуть в try блок?
А вот такой варант хороший?
class MyAPI():
def on_post(self, req, resp):
request_json = None
ready_query = None
error_msg = dict()
try:
request_json = json.loads(req.stream.read().decode('utf-8')) # do not needed in Python >=3.6
ready_query = make_query(request_json)
resp.body = get_list_of_transactions_from_db(ready_query, request_json)
except Exception as e:
log.critical("Input JSONDecodeError: {0} Exception: {1}".format(req.stream.read().decode('utf-8'), e))
error_msg['error'] = 'JSONDecodeError'
resp.body = json.dumps(error_msg)