@beduin01

Как лучше переработать функцию валидации и ответа?

Использую 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)
  • Вопрос задан
  • 75 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
07 мая 2024, в 19:34
10000 руб./за проект
07 мая 2024, в 18:48
5000 руб./за проект
07 мая 2024, в 18:23
20000 руб./за проект