Есть бот на aiogram, в нем есть функции где нужно делать запросы к API, я вынес все в отдельный класс:
class TestAPI:
def __init__(self, api_key):
self.api_key = api_key
async def _post_request(self, url, payload, api_key):
headers = {
'merchant': 123,
'sign': 123,
'Content-Type': 'application/json'
}
async with aiohttp.ClientSession() as session:
async with session.post(url, headers=headers, json=payload, ssl=False) as response:
...
async def create_payout(self, order_id):
url = "https://api.example.com/v1/payout"
payload = {}
result = await self._post_request(url, payload, self.api_key)
...
При работе с классом через aiogram все работает хорошо, но в проекте есть еще обработчик вебхуков на FastAPI и когда он обращается к классу и отправляет запрос через aiohttp, то сессия не закрывается и я получаю предупреждение
02/11/2024 00:00:00 PM : base_events.py line - 1757 : default_exception_handler : asyncio : ERROR : Unclosed connector
connections: ['[(<aiohttp.client_proto.ResponseHandler object at 0x7f7ccbe0e510>, 7870.742849551)]']
connector: <aiohttp.connector.TCPConnector object at 0x7f7ccbdb9090>
С классом в FastAPI работаю как и в aiogram, вот пример:
from utils.api_clients.test import TestAPI
async def processing_payment(order_id):
api = TestAPI(api_key=api_key)
payout = await api.create_payout(order_id)
Как правильно закрыть сессию при работе FastAPI? С вебхуками работаю первый раз, буду рад любой помощи, заранее спасибо!