Работа с API в Python: что изменилось и что реально важно сейчас
Кто как сейчас с API юзается на Python? Слышал, что requests всё ещё рулит, но появляются какие-то новые либы под асинхронку, да и авторизация, кажется, стала требовать не просто токен в header, а MFA и всякое такое. У меня был опыт с REST и пару раз брал графовые API — в первых случаях запросы делал через requests, но для async проектов чаще переключился на httpx. По ощущениям, httpx удобнее и поддерживает sync и async вместе. При работе с API сейчас важно не только просто получить данные, но и грамотно обрабатывать ошибки, особенно те, которые идут с сервера. Например, часто встречаю rate limit — тут можно либо встроить задержки, либо использовать backoff-стратегии, чтобы не попасть в бан.
Ещё заметил, что многие API перешли на oauth2 с коротким временем жизни токенов — приходится писать код обновления access token, иначе постоянно падают запросы. Кто как это сейчас обычно решает? Пул токенов или сингл с обновлением в фоне? И есть ли адекватные готовые решения на Python для этого?
Если что, небольшие советы по работе с JSON-данными на выходе — лучше всегда делать валидацию через pydantic или dataclasses, чтобы не ловить баги потом.
Короче, если кто поделится свежим лайфхаком или дельным инструментом, буду благодарен. Как у вас с API сейчас в Python? Расскажите, что тормозит, что наоборот стало проще.