Programação Assíncrona

Programação assíncrona em Python com async/await pode melhorar significativamente a performance de aplicações I/O-bound.

Função Assíncrona Básica

import asyncio
import aiohttp

async def fetch_data(url):
    async with aiohttp.ClientSession() as session:
        async with session.get(url) as response:
            return await response.json()

# Executar
data = await fetch_data('https://api.example.com/data')

Múltiplas Requisições

async def fetch_multiple(urls):
    tasks = [fetch_data(url) for url in urls]
    results = await asyncio.gather(*tasks)
    return results

# Mais eficiente que fazer sequencialmente
urls = ['https://api.example.com/1', 
        'https://api.example.com/2']
results = await fetch_multiple(urls)

Com FastAPI

from fastapi import FastAPI
import httpx

app = FastAPI()

@app.get("/external-data")
async def get_external_data():
    async with httpx.AsyncClient() as client:
        response = await client.get("https://api.example.com/data")
        return response.json()