Saltar para o conteúdo principal
Didit angaria 7,5 milhões de dólares para construir a infraestrutura para identidade e fraude
Didit
Voltar ao blog
Blog · 7 de março de 2026

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

Descubra como o Asyncio do Python pode melhorar drasticamente o desempenho e a eficiência das suas aplicações que consomem as APIs de verificação de identidade da Didit.

Por DiditAtualizado
Um pássaro estilizado com asas e corpo em tons de dourado e azul, com padrões de circuito, voando para cima e para a direita, sobre um fundo gradiente de branco e azul claro.

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

Domine o Controlo de Taxa (Rate Limiting): Implemente estratégias sofisticadas de controlo de taxa com o Asyncio para manter os 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 pedidos de verificação de identidade por segundo sem incorrer em altos custos de infraestrutura.

Vantagem API-First do Didit: A abordagem do Didit, focada no desenvolvedor, com APIs limpas e um ambiente de testes instantâneo, é ideal para integração com frameworks assíncronos, permitindo fluxos de trabalho de verificação de identidade contínuos e de alto desempenho, desde a verificação de documentos à deteção de vivacidade.

A Necessidade de Velocidade: Porquê Asyncio para Consumo de API?

No mundo digital acelerado de hoje, as aplicações frequentemente precisam de realizar inúmeras chamadas de API externas para cumprir as suas funções. Quando estas chamadas são bloqueantes, o que significa que a aplicação espera por cada resposta antes de prosseguir para a próxima, surgem rapidamente gargalos de desempenho. Isto é especialmente verdade para serviços de verificação de identidade, onde um único fluxo de integração do utilizador pode envolver múltiplas interações de API: Verificação de Documentos, Verificações de Vivacidade Passiva e Ativa, Correspondência Facial 1:1 e Triagem AML. Para empresas com grandes volumes de utilizadores, estas operações sequenciais podem levar a atrasos significativos e a experiências de utilizador deficientes.

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

Compreender o Ecossistema de API do Didit e os Limites de Taxa

O Didit, como plataforma de identidade nativa de IA, oferece um conjunto abrangente de APIs para verificação de identidade, incluindo Verificação de Documentos (OCR, MRZ, códigos de barras), Vivacidade Passiva e Ativa, Correspondência Facial 1:1, Triagem e Monitorização AML, e muito mais. A nossa API foi projetada para alto desempenho e fiabilidade, mas como todas as APIs robustas, emprega controlo de taxa para garantir estabilidade e uso justo em todos os clientes. Compreender estes limites é crucial para qualquer consumidor de alto desempenho.

O Didit impõe limites de taxa globais e específicos por endpoint. Por exemplo, os limites globais são tipicamente de 300 pedidos por minuto por aplicação para endpoints GET e Write/Delete. Limites mais restritivos aplicam-se 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 estes limites são excedidos, a API retorna um código de estado 429 Too Many Requests, juntamente com cabeçalhos úteis como X-RateLimit-Limit, X-RateLimit-Remaining e Retry-After (segundos de época) para guiar a sua estratégia de "backoff".

A implementação do asyncio permite gerir estes limites de taxa de forma muito mais eficaz. Em vez de um único "thread" bloqueante a atingir o limite, uma aplicação assíncrona pode inteligentemente enfileirar pedidos, implementar "backoff" exponencial e repetir chamadas falhadas sem bloquear o fluxo de toda a aplicação. Isso resulta num consumo de API mais suave e menos interrupções, garantindo que os seus processos de verificação de identidade permaneçam ininterruptos mesmo durante picos de carga.

Implementando Asyncio para Chamadas Concorrentes à API Didit

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


import asyncio
import aiohttp
import time

API_KEY = "YOUR_DIDIT_API_KEY"
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"Rate limit hit. Retrying after {retry_after} seconds...")
            await asyncio.sleep(retry_after) # Implement simple backoff
            return await call_didit_api(session, endpoint, payload, method) # Retry
        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://your-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 = []
        # Example: Create 10 verification sessions concurrently
        for i in range(10):
            tasks.append(create_verification_session(session, "YOUR_WORKFLOW_ID", f"user_{i}"))
        
        results = await asyncio.gather(*tasks)
        for res in results:
            print(f"Created session: {res.get('session_id')}")

        # Example: Retrieve decisions for some sessions concurrently
        decision_tasks = []
        for res in results[:5]: # Take first 5 for decision retrieval
            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"Session decision: {decision}")

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

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

Ao usar asyncio.gather, pode iniciar múltiplos pedidos de API simultaneamente, permitindo que a sua aplicação processe outras tarefas ou espere por respostas concorrentemente, levando a ganhos de desempenho significativos em comparação com chamadas bloqueantes sequenciais.

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

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

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

Como o Didit Ajuda

O Didit é construído de raiz para desenvolvedores e aplicações de alto desempenho, tornando-o um parceiro ideal para implementações de Python Asyncio. A nossa arquitetura modular permite-lhe "plug-and-play" verificações de identidade como Verificação de Documentos, Vivacidade Passiva e Ativa, Correspondência Facial 1:1 e Triagem AML conforme necessário, cada uma acessível através de APIs limpas e bem documentadas. Esta modularidade significa que pode orquestrar fluxos de trabalho de verificação complexos, adaptados às suas necessidades específicas, e depois otimizar o 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-lhe experimentar e construir as suas integrações assíncronas sem custos iniciais. A nossa abordagem nativa de IA garante que os nossos serviços de verificação são rápidos e precisos, complementando perfeitamente os benefícios de velocidade do Asyncio. Sem taxas de configuração e com um modelo de pagamento por verificação, o Didit oferece uma solução económica e escalável para empresas que procuram implementar verificação de identidade de alto desempenho. O nosso ambiente de testes instantâneo e a documentação abrangente da API capacitam ainda mais os desenvolvedores a integrar e otimizar rapidamente o uso dos serviços do Didit, seja para construir um novo sistema ou aprimorar um existente.

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.

Infraestrutura para identidade e fraude.

Uma API para KYC, KYB, Monitorização de Transações e Rastreio de Carteiras. Integre em 5 minutos.

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