Aumente o Desempenho: Python Assíncrono para API e Webhooks Didit (PT-BR)
Descubra como o asyncio do Python pode revolucionar sua integração com a API e os webhooks do Didit, permitindo verificação de identidade de alta vazão e processamento eficiente.

Otimize Interações com a APIAproveite o
asynciodo Python para fazer chamadas não bloqueadoras à API do Didit, melhorando drasticamente a vazão para verificação de identidade e reduzindo a latência para operações de alto volume.Processamento Eficiente de WebhooksImplemente manipuladores de webhook assíncronos para processar eventos Didit de entrada sem bloquear, garantindo que sua aplicação permaneça responsiva e possa escalar para lidar com inúmeras notificações concorrentes.
Domine o Gerenciamento de Limite de TaxasEntenda e gerencie efetivamente os limites de taxa da API do Didit usando técnicas assíncronas e estratégias de backoff inteligentes, prevenindo interrupções de serviço e garantindo uma troca de dados confiável.
A Vantagem AI-Native do DiditA plataforma do Didit é projetada para alto desempenho e facilidade para desenvolvedores, oferecendo registro programático e APIs robustas que complementam perfeitamente a programação assíncrona para soluções de identidade escaláveis e impulsionadas por IA.
A Necessidade de Velocidade: Por Que a Programação Assíncrona é Importante para a Identidade
No mundo digital acelerado de hoje, as aplicações exigem respostas instantâneas. Seja no onboarding de novos usuários, processamento de transações ou verificação de identidades, atrasos podem levar à perda de clientes e receita. A verificação de identidade, em particular, frequentemente envolve múltiplas chamadas de API — para verificar documentos, realizar detecção de vivacidade ou rastrear listas de observação. Chamadas de API síncronas, onde seu programa espera que cada requisição seja concluída antes de passar para a próxima, podem rapidamente se tornar um gargalo, especialmente ao lidar com grandes volumes.
É aqui que a programação assíncrona, especificamente o asyncio do Python, brilha. Ao permitir que sua aplicação inicie múltiplas tarefas concorrentemente sem bloquear o thread de execução principal, o asyncio permite uma vazão e capacidade de resposta significativamente maiores. Para integrar-se com plataformas de identidade poderosas como o Didit, que oferecem APIs robustas para Verificação de ID, Vivacidade Passiva e Ativa, Correspondência Facial 1:1 e Triagem AML, alavancar o asyncio não é apenas uma otimização — é uma necessidade para construir sistemas escaláveis e de alto desempenho.
Imagine um cenário onde milhares de usuários estão tentando se inscrever simultaneamente. Cada inscrição exige várias verificações de identidade. Com chamadas síncronas, seu servidor processaria essas uma a uma, levando a longas filas e usuários frustrados. Com o asyncio, sua aplicação pode iniciar todas essas verificações quase simultaneamente, esperando que os resultados cheguem à medida que estiverem prontos, melhorando drasticamente a experiência do usuário e a capacidade geral do sistema.
Implementando Chamadas de API Assíncronas para o Didit
Integrar-se à API do Didit de forma assíncrona envolve o uso de um cliente HTTP que suporte asyncio, como httpx ou aiohttp. Essas bibliotecas permitem enviar requisições sem bloqueio, tornando-as ideais para cenários de alta vazão.
Vamos considerar um caso de uso comum: iniciar múltiplas sessões de verificação de identidade. A API do Didit é projetada para eficiência, e com o asyncio, você pode maximizá-la. Por exemplo, a criação de sessões de verificação via POST /v3/session/ pode ser feita concorrentemente. Cada sessão pode envolver a Verificação de ID do Didit (OCR, MRZ, códigos de barras) ou verificações de Vivacidade Passiva e Ativa.
import asyncio
import httpx
async def create_didit_session(api_key: str, user_id: str):
url = "https://apx.didit.me/v3/sessions/"
headers = {"x-api-key": api_key, "Content-Type": "application/json"}
payload = {"external_id": user_id, "flow_id": "your_flow_id"}
async with httpx.AsyncClient() as client:
response = await client.post(url, headers=headers, json=payload)
response.raise_for_status() # Raise an exception for bad status codes
return response.json()
async def main():
didit_api_key = "YOUR_DIDIT_API_KEY"
user_ids = [f"user_{i}" for i in range(100)] # Simulate 100 users
tasks = [create_didit_session(didit_api_key, user_id) for user_id in user_ids]
results = await asyncio.gather(*tasks, return_exceptions=True)
for i, result in enumerate(results):
if isinstance(result, Exception):
print(f"Error creating session for user_{user_ids[i]}: {result}")
else:
print(f"Session created for user_{user_ids[i]}: {result['session_id']}")
if __name__ == "__main__":
asyncio.run(main())
Este exemplo demonstra como criar 100 sessões de verificação concorrentemente. Cada chamada para create_didit_session é uma corrotina aguardável. asyncio.gather as executa todas em paralelo, reduzindo significativamente o tempo total em comparação com a execução sequencial.
Lidando com Webhooks Didit Assincronamente para Atualizações em Tempo Real
Webhooks são cruciais para atualizações em tempo real do Didit, informando seu sistema sobre a conclusão da Verificação de ID, o resultado de uma Triagem AML ou o resultado de uma verificação de Comprovante de Endereço. Quando o Didit envia uma notificação de webhook, sua aplicação precisa processá-la rapidamente sem bloquear os webhooks subsequentes. Um manipulador de webhook assíncrono é essencial para isso.
Um framework web Python assíncrono típico como FastAPI ou Aiohttp é perfeito para construir um receptor de webhook assíncrono. Quando o Didit envia um webhook (por exemplo, uma notificação de conclusão de sessão), seu manipulador pode analisar o payload, verificar a assinatura usando a secret_shared_key obtida da configuração de webhook do Didit e, em seguida, enfileirar o processamento do evento para uma tarefa em segundo plano ou fila de mensagens sem atrasar a resposta HTTP de volta para o Didit.
from fastapi import FastAPI, Request, HTTPException
import hmac
import hashlib
import asyncio
app = FastAPI()
WEBHOOK_SECRET = "whsec_a1b2c3d4e5f6g7h8i9j0..." # Get this from Didit webhook config
async def process_didit_event(event_data: dict):
# Simulate asynchronous processing, e.g., updating database, notifying users
print(f"Processing Didit event: {event_data['event_type']} for session {event_data['session_id']}")
await asyncio.sleep(2) # Simulate I/O bound task
print(f"Finished processing event for session {event_data['session_id']}")
@app.post("/didit-webhook")
async def didit_webhook(request: Request):
signature = request.headers.get("X-Didit-Signature")
if not signature:
raise HTTPException(status_code=400, detail="Missing X-Didit-Signature header")
body = await request.body()
# Verify webhook signature (important for security)
expected_signature = hmac.new(WEBHOOK_SECRET.encode('utf-8'), body, hashlib.sha256).hexdigest()
if not hmac.compare_digest(signature, expected_signature):
raise HTTPException(status_code=403, detail="Invalid webhook signature")
event_data = await request.json()
# Process event asynchronously in the background
asyncio.create_task(process_didit_event(event_data))
return {"status": "received", "message": "Event accepted for processing"}
Este exemplo de FastAPI mostra como reconhecer rapidamente o webhook e, em seguida, descarregar o processamento real usando asyncio.create_task. Isso garante que seu endpoint de webhook permaneça altamente disponível e responsivo, mesmo que o processamento de eventos individuais leve algum tempo. A configuração de webhook do Didit permite que você especifique um webhook_url e webhook_version, facilitando a configuração de entrega de eventos segura e confiável.
Navegando Limites de Taxa com Estratégias Assíncronas
Os limites de taxa da API são uma consideração crítica para qualquer integração de alta vazão. O Didit, como qualquer provedor de API robusto, impõe limites de taxa para manter a estabilidade. Compreender e lidar graciosamente com esses limites é fundamental para evitar erros 429 Too Many Requests e garantir a operação contínua.
O Didit fornece cabeçalhos de limite de taxa claros (X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, Retry-After) em suas respostas. Com o asyncio, você pode implementar estratégias sofisticadas de limite de taxa, como backoff exponencial com jitter e algoritmos de token bucket, sem bloquear toda a sua aplicação.
import asyncio
import httpx
import time
async def make_rate_limited_request(client: httpx.AsyncClient, url: str, headers: dict, payload: dict, retries: int = 5):
for attempt in range(retries):
response = await client.post(url, headers=headers, json=payload)
if response.status_code == 429:
retry_after = int(response.headers.get("Retry-After", 2 ** attempt)) # Exponential backoff
print(f"Rate limit hit. Retrying in {retry_after} seconds...")
await asyncio.sleep(retry_after)
else:
response.raise_for_status()
return response.json()
raise Exception("Max retries exceeded for rate-limited request.")
async def main_rate_limited():
didit_api_key = "YOUR_DIDIT_API_KEY"
url = "https://apx.didit.me/v3/sessions/"
headers = {"x-api-key": didit_api_key, "Content-Type": "application/json"}
async with httpx.AsyncClient() as client:
tasks = []
for i in range(150): # Simulate exceeding a 300 rpm limit with 150 tasks
payload = {"external_id": f"user_{i}", "flow_id": "your_flow_id"}
tasks.append(make_rate_limited_request(client, url, headers, payload))
results = await asyncio.gather(*tasks, return_exceptions=True)
for i, result in enumerate(results):
if isinstance(result, Exception):
print(f"Request {i} failed: {result}")
else:
print(f"Request {i} succeeded: {result.get('session_id')}")
if __name__ == "__main__":
asyncio.run(main_rate_limited())
Este exemplo mostra uma estratégia de backoff exponencial assíncrona. Quando um 429 é recebido, a corrotina espera pela duração Retry-After especificada (ou um tempo que aumenta exponencialmente) antes de tentar novamente, tudo sem bloquear outras tarefas concorrentes. Os limites globais do Didit (300 requisições por minuto por aplicação para endpoints GET/Write/Delete) e limites específicos de endpoint (por exemplo, 600 rpm para POST /v2/session/) são claramente documentados, permitindo que você projete seus clientes assíncronos de acordo.
Como o Didit Ajuda a Construir Soluções de Identidade de Alta Vazão
A arquitetura do Didit é inerentemente projetada para suportar operações de alta vazão, tornando-o um parceiro ideal para integrações assíncronas. Nossa plataforma oferece várias vantagens chave:
- Developer-First & AI-Native: O Didit fornece APIs limpas e documentação abrangente, facilitando a integração com o
asynciodo Python. Nossa abordagem AI-native significa que tarefas complexas de verificação de identidade, desde Verificação de ID até Vivacidade Passiva e Ativa, são processadas eficientemente em nossa ponta, permitindo que sua aplicação simplesmente aguarde os resultados. - Primitivos de Identidade Modulares: O design modular do Didit permite que você escolha as verificações de identidade exatas de que precisa. Seja Verificação de ID (OCR, MRZ), Correspondência Facial 1:1 ou Comprovante de Endereço, cada primitivo é acessível via uma API de alto desempenho, perfeitamente adequada para chamadas concorrentes.
- Registro Programático: Ao contrário de muitas plataformas, o Didit permite registro programático, mesmo para agentes de IA. Você pode obter credenciais de API em apenas duas chamadas de API, totalmente headless, sem nunca abrir um navegador. Isso minimiza o atrito de configuração e permite a implantação automatizada e em grande escala de sua infraestrutura de identidade.
- Fluxos de Trabalho Orquestrados: O motor no-code do Didit permite orquestrar fluxos de trabalho KYC complexos, reduzindo o número de chamadas de API individuais que sua aplicação precisa gerenciar, enquanto ainda se beneficia do processamento assíncrono do resultado geral da sessão.
- KYC Core Gratuito e Preços Flexíveis: O Didit oferece KYC Core Gratuito, permitindo que você comece sem custos iniciais. Nosso modelo de pagamento por verificação bem-sucedida e sem taxas de configuração significa que você paga apenas pelo que usa, alinhando-se perfeitamente com arquiteturas escaláveis baseadas em uso habilitadas pelo processamento assíncrono.
Ao combinar o poder do asyncio do Python com a API robusta e amigável para desenvolvedores do Didit, você pode construir sistemas de verificação de identidade que não são apenas seguros e compatíveis, mas também incrivelmente rápidos e escaláveis, capazes de lidar com as demandas das empresas digitais modernas.
Pronto para Começar?
Pronto para ver o Didit em ação? Obtenha uma demonstração gratuita hoje.
Comece a verificar identidades gratuitamente com o nível gratuito do Didit.