Pular para o conteúdo principal
Didit levanta US$ 7,5 milhões para construir a infraestrutura para identidade e fraude
Didit
Voltar para o blog
Blog · 7 de março de 2026

Aumente o Desempenho da API Didit com Python Asyncio (PT-BR)

Descubra como o Asyncio do Python pode aprimorar drasticamente o desempenho e a eficiência de suas aplicações que consomem as APIs de verificação de identidade da Didit, otimizando chamadas e gerenciando limites de taxa.

Por DiditAtualizado
boost-didit-api-throughput-with-python-asyncio.png

Otimize o Consumo da API: O Python Asyncio permite operações de I/O não bloqueadoras, melhorando significativamente a eficiência de aplicações que fazem inúmeras chamadas de API para serviços como o Didit para verificação de identidade.

Domine o Controle de Taxa: Implemente estratégias sofisticadas de controle de taxa com Asyncio para se manter dentro dos limites da API do Didit, prevenindo erros 429 e garantindo a disponibilidade contínua do serviço para cenários de alto desempenho.

Crie Soluções Escaláveis: Aproveite o modelo de concorrência do Asyncio para projetar sistemas robustos e escaláveis capazes de processar milhares de solicitações de verificação de identidade por segundo sem incorrer em altos custos de infraestrutura.

Vantagem API-First da Didit: A abordagem desenvolvedor-first da Didit, com APIs limpas e um sandbox instantâneo, é idealmente adequada para integração com frameworks assíncronos, permitindo fluxos de trabalho de verificação de identidade contínuos e de alta performance, desde a verificação de identidade até a detecção de vivacidade.

A Necessidade de Velocidade: Por Que Asyncio para Consumo de API?

No mundo digital acelerado de hoje, as aplicações frequentemente precisam realizar inúmeras chamadas de API externas para cumprir suas funções. Quando essas chamadas são bloqueadoras, ou seja, a aplicação espera por cada resposta antes de prosseguir para a próxima, gargalos de desempenho surgem rapidamente. Isso é especialmente verdadeiro para serviços de verificação de identidade, onde um único fluxo de integração de usuário pode envolver múltiplas interações de API: Verificação de ID, verificações de Vivacidade Passiva e Ativa, Correspondência Facial 1:1 e Triagem AML. Para empresas com alto volume de usuários, essas operações sequenciais podem levar a atrasos significativos e experiências de usuário ruins.

A biblioteca asyncio do Python fornece uma estrutura robusta para escrever código concorrente usando a sintaxe async/await. Diferente da multithreading tradicional, que pode introduzir complexidades como o Global Interpreter Lock (GIL) para tarefas CPU-bound, o asyncio é projetado para operações I/O-bound. As chamadas de API são inerentemente I/O-bound (aguardando respostas da rede), tornando o asyncio um candidato ideal para impulsionar a capacidade de sua aplicação de consumir APIs externas de forma eficiente. Ao permitir que seu programa execute outras tarefas enquanto aguarda as respostas da API, o asyncio pode aumentar drasticamente o desempenho sem exigir uma reescrita completa da arquitetura de sua aplicação em um sistema distribuído.

Compreendendo o Cenário da API Didit e Seus Limites de Taxa

Didit, como uma plataforma de identidade nativa de IA, oferece um conjunto abrangente de APIs para verificação de identidade, incluindo Verificação de ID (OCR, MRZ, códigos de barras), Vivacidade Passiva e Ativa, Correspondência Facial 1:1, Triagem e Monitoramento AML, e muito mais. Nossa API é projetada para alto desempenho e confiabilidade, mas como todas as APIs robustas, ela emprega controle de taxa para garantir estabilidade e uso justo entre todos os clientes. Compreender esses limites é crucial para qualquer consumidor de alto desempenho.

Didit impõe limites de taxa globais e específicos de endpoint. Por exemplo, os limites globais são tipicamente 300 solicitações por minuto por aplicação para endpoints GET e Write/Delete. Limites mais restritivos se aplicam a operações de alto impacto, como 600 RPM para POST /v2/session/ (para criar fluxos de trabalho de verificação) e 100 RPM para GET /v2/session/<id>/decision/ (para recuperar decisões de sessão). Quando esses limites são excedidos, a API retorna um código de status 429 Too Many Requests, juntamente com cabeçalhos úteis como X-RateLimit-Limit, X-RateLimit-Remaining e Retry-After (segundos epoch) para guiar sua estratégia de backoff.

A implementação do asyncio permite gerenciar esses limites de taxa de forma muito mais eficaz. Em vez de um único thread bloqueador atingindo o limite, uma aplicação assíncrona pode inteligentemente enfileirar solicitações, implementar backoff exponencial e tentar novamente chamadas falhas sem bloquear o fluxo de toda a aplicação. Isso resulta em um consumo de API mais suave e menos interrupções, garantindo que seus processos de verificação de identidade permaneçam ininterruptos mesmo durante picos de carga.

Implementando Asyncio para Chamadas Concorrentes da API Didit

A integração do asyncio com as APIs da Didit envolve o uso de um cliente HTTP assíncrono como o aiohttp. Aqui está um esboço conceitual de como você pode estruturar suas chamadas de API assíncronas:


import asyncio
import aiohttp
import time

API_KEY = "SUA_CHAVE_API_DIDIT"
BASE_URL = "https://verification.didit.me/v3/"

async def call_didit_api(session, endpoint, payload=None, method='POST'):
    headers = {
        'accept': 'application/json',
        'x-api-key': API_KEY
    }
    if method == 'POST':
        headers['content-type'] = 'application/json'

    url = f"{BASE_URL}{endpoint}"
    
    async with session.request(method, url, json=payload, headers=headers) as response:
        if response.status == 429:
            retry_after = int(response.headers.get('Retry-After', '5'))
            print(f"Limite de taxa atingido. Tentando novamente após {retry_after} segundos...")
            await asyncio.sleep(retry_after) # Implementa backoff simples
            return await call_didit_api(session, endpoint, payload, method) # Tentar novamente
        response.raise_for_status()
        return await response.json()

async def create_verification_session(session, workflow_id, user_id):
    endpoint = "session/"
    payload = {
        "workflow_id": workflow_id,
        "vendor_data": user_id,
        "callback": "https://seu-app.com/didit-callback"
    }
    return await call_didit_api(session, endpoint, payload, method='POST')

async def get_session_decision(session, session_id):
    endpoint = f"session/{session_id}/decision/"
    return await call_didit_api(session, endpoint, method='GET')

async def main():
    async with aiohttp.ClientSession() as session:
        tasks = []
        # Exemplo: Criar 10 sessões de verificação concorrentemente
        for i in range(10):
            tasks.append(create_verification_session(session, "SEU_WORKFLOW_ID", f"user_{i}"))
        
        results = await asyncio.gather(*tasks)
        for res in results:
            print(f"Sessão criada: {res.get('session_id')}")

        # Exemplo: Recuperar decisões para algumas sessões concorrentemente
        decision_tasks = []
        for res in results[:5]: # Pegar as primeiras 5 para recuperação de decisão
            session_id = res.get('session_id')
            if session_id:
                decision_tasks.append(get_session_decision(session, session_id))
        
        decision_results = await asyncio.gather(*decision_tasks)
        for decision in decision_results:
            print(f"Decisão da sessão: {decision}")

if __name__ == "__main__":
    asyncio.run(main())

Este exemplo demonstra como criar múltiplas sessões de verificação e recuperar suas decisões concorrentemente. A função call_didit_api inclui um mecanismo básico de retentativa para 429 Too Many Requests, usando o cabeçalho Retry-After para implementar backoff exponencial. Para sistemas de produção, um padrão de backoff e circuit breaker mais sofisticado seria recomendado, mas isso ilustra o princípio central.

Ao usar asyncio.gather, você pode iniciar múltiplas solicitações de API simultaneamente, permitindo que sua aplicação processe outras tarefas ou aguarde respostas concorrentemente, levando a ganhos significativos de desempenho em comparação com chamadas bloqueadoras sequenciais.

Estratégias para Verificação de Identidade de Alto Volume

Alcançar alto desempenho com as APIs da Didit usando Asyncio requer mais do que apenas fazer solicitações concorrentemente. Considere estas estratégias:

  • Agrupamento Inteligente: Embora a verificação central da Didit seja frequentemente iniciada pelo usuário, para operações como Monitoramento AML ou certas pesquisas de dados, você pode projetar fluxos de trabalho que permitam o processamento em lote quando aplicável, reduzindo o número total de chamadas de API.
  • Controle de Taxa Adaptativo: Além do simples backoff exponencial, implemente um controlador de taxa adaptativo que monitore X-RateLimit-Remaining e ajuste o nível de concorrência de suas tarefas asyncio dinamicamente. Se as chamadas restantes forem baixas, diminua a velocidade; se forem altas, acelere.
  • Atualizações Orientadas por Webhook: Para resultados de sessão (por exemplo, após verificação de ID ou verificações de vivacidade), confie nos webhooks da Didit em vez de polling excessivo. Isso reduz o número de solicitações GET para /v2/session/<id>/decision/, que tem um limite de taxa mais rigoroso de 100 RPM. A arquitetura modular da Didit significa que você pode configurar notificações de webhook para várias mudanças de status, enviando atualizações em tempo real para seu sistema sem constante consulta.
  • Tratamento de Erros e Observabilidade: Implemente um tratamento de erros robusto para problemas de rede, erros de API (além de 429s) e timeouts. Registre ou alerte quando as retentativas forem acionadas ou os limites de taxa forem consistentemente atingidos. Isso fornece insights cruciais para otimizar sua estratégia de consumo de API.
  • Gerenciamento de Recursos: Gerencie suas instâncias de aiohttp.ClientSession cuidadosamente. Criar uma nova sessão para cada solicitação é ineficiente devido à sobrecarga de conexão. Reutilizar uma única sessão para múltiplas solicitações é geralmente a melhor prática.

Como a Didit Ajuda

A Didit é construída desde o início para desenvolvedores e aplicações de alto desempenho, tornando-a uma parceira ideal para implementações de Python Asyncio. Nossa arquitetura modular permite que você "plug-and-play" verificações de identidade como Verificação de ID, Vivacidade Passiva e Ativa, Correspondência Facial 1:1 e Triagem AML conforme necessário, cada uma acessível via APIs limpas e bem documentadas. Essa modularidade significa que você pode orquestrar fluxos de trabalho de verificação complexos adaptados às suas necessidades específicas e, em seguida, otimizar seu consumo usando técnicas assíncronas.

Acreditamos em tornar a verificação de identidade acessível, e é por isso que oferecemos Free Core KYC. Isso permite que você experimente e construa suas integrações assíncronas sem custos iniciais. Nossa abordagem nativa de IA garante que nossos serviços de verificação sejam rápidos e precisos, complementando perfeitamente os benefícios de velocidade do Asyncio. Sem taxas de configuração e um modelo de pagamento por verificação bem-sucedida, a Didit oferece uma solução econômica e escalável para empresas que buscam implementar verificação de identidade de alto desempenho. Nosso ambiente de sandbox instantâneo e documentação abrangente da API capacitam ainda mais os desenvolvedores a integrar e otimizar rapidamente o uso dos serviços da Didit, seja você construindo um novo sistema ou aprimorando um existente.

Pronto para Começar?

Pronto para ver a Didit em ação? Obtenha uma demonstração gratuita hoje.

Comece a verificar identidades gratuitamente com o plano gratuito da Didit.

Infraestrutura para identidade e fraude.

Uma API para KYC, KYB, Monitoramento de Transações e Análise de Carteiras. Integre em 5 minutos.

Peça para uma IA resumir esta página
Aumente o Desempenho da API Didit com Python Asyncio.