Фреймворк обработчика ошибок API aiohttp

Мы разработали некоторые API-интерфейсы на стороне сервера aiohttp, и из этого API-интерфейса мы называем один из классов Python, где я выполнил всю бизнес-логику.

Теперь мы хотим создать инфраструктуру обработки ошибок для всех API-интерфейсов. Пожалуйста, дайте несколько идей для реализации этой инфраструктуры, и мне нужно также выполнить валидацию параметров запроса, если я консолидирую и отправляю все ошибки за один раз или просто проверяю один параметр и отправляю обратно. сообщение об ошибке для звонящего.

API выглядит так:

 async def new_user(request):
try:
    # happy path where name is set
    user = request.query['name']
    # Process our new user
    print("Creating new user with name: " , user)

    response_obj = { 'status' : 'success' }
    # return a success json response with status code 200 i.e. 'OK'
    return web.Response(text=json.dumps(response_obj), status=200)
except Exception as e:
    # Bad path where name is not set
    response_obj = { 'status' : 'failed', 'reason': str(e), 'code' : 400 }
    # return failed with a status code of 500 i.e. 'Server Error'
    return web.Response(text=json.dumps(response_obj), status=400)

1 ответ

Если вы используете aio-http попытаться создать aiohttp.web.middleware,

https://docs.aiohttp.org/en/stable/web_advanced.html

Другие вопросы по тегам