Создайте функцию Async Python для API
Я создаю модуль, который взаимодействует с API, и я думаю создать свою функцию с помощью asyncio. Прямо сейчас мой код выглядит так:
def getMethod(self, stuff:str=None): #yes it in a class
header = {'Content-Type': 'application/json'}
endpoint = f"https://{self.endpoint}/"
params = {"myParam": stuff}
res = requests.get(endpoint, params=params, headers=header)
return res
Как видите, я использую модуль запроса для отправки данных. Думаю, мне нужно это сделать:
import asyncio
async def getMethod(self, stuff:str=None): #yes it in a class
header = {'Content-Type': 'application/json'}
endpoint = f"https://{self.endpoint}/"
params = {"myParam": stuff}
res = requests.get(endpoint, params=params, headers=header)
yield res
Сработает ли это, чтобы моя функция была асинхронной? или мне также следует использовать что-то вроде httpx (или aiohttp), чтобы дождаться результата? Как следующие
async def getMethod(self, stuff:str=None): #yes it in a class
header = {'Content-Type': 'application/json'}
endpoint = f"https://{self.endpoint}/"
params = {"myParam": stuff}
await res = httpx.get(endpoint, params=params, headers=header)
return res
Спасибо за вашу помощь. Пытаюсь изучить там async python.
1 ответ
Рекомендуем использовать httpx, асинхронный код следующим образом:
async def getMethod(self, stuff: str = None): # yes it in a class
header = {'Content-Type': 'application/json'}
endpoint = f"https://{self.endpoint}/"
params = {"myParam": stuff}
async with httpx.AsyncClient(headers=header, params=params) as client:
res = await client.get(endpoint, params=params, headers=header)
return res