Pular para o conteúdo principal
Gerenciar grandes conjuntos de dados de forma eficiente é crucial para manter o desempenho e a escalabilidade da API. Nossas APIs empregam um mecanismo robusto de paginação para entregar dados em porções menores e gerenciáveis. Isso melhora os tempos de resposta e o processamento no lado do cliente, particularmente para aplicações que carregam resultados de forma incremental.

Paginação em nossas APIs


Em vez de retornar o conjunto de dados inteiro em uma única resposta, o que pode sobrecarregar recursos, os clientes podem solicitar subconjuntos específicos de dados. Isso melhora os tempos de resposta e permite um tratamento de dados mais suave, particularmente para aplicações que carregam resultados de forma incremental. Suportamos dois parâmetros de consulta para paginação:
  • page (inteiro): Especifica o número da página a ser recuperada. O valor padrão é 1.
    • Valores negativos são inválidos e resultarão em erro.
  • limit (inteiro): Define o número máximo de itens por página. O valor padrão é 10.
Por exemplo, para recuperar a primeira página de organizações com no máximo 10 itens por página:
GET /v1/organizations?page=1&limit=10

Resposta de paginação

A resposta de paginação inclui a seguinte estrutura:
  • items: Um array de entidades recuperadas para a página atual. Cada objeto contém informações detalhadas sobre o recurso solicitado, conforme mostrado no exemplo abaixo.
  • page: O número da página atual, começando em 1 (padrão).
  • limit: O número máximo de itens incluídos na resposta, conforme definido na requisição ou na configuração padrão.
Abaixo está um exemplo de resposta para uma requisição paginada:
{
    "items": [
        {
            "id": "0193696f-8eff-7926-a77a-0b424cf7156b",
            "parentOrganizationId": null,
            "legalName": "Collins Inc",
            "doingBusinessAs": "The ledger.io",
            "legalDocument": "78425230000190",
            "address": {
                "line1": "Avenida Paulista, 1234",
                "line2": "CJ 203",
                "zipCode": "01310916",
                "city": "New Lyla",
                "state": "CH",
                "country": "FO"
            },
            "status": {
                "code": "ACTIVE",
                "description": "Ledger Test"
            },
            "createdAt": "2024-11-26T17:05:39.071587Z",
            "updatedAt": "2024-11-26T17:05:39.071587Z",
            "deletedAt": null,
            "metadata": {
                "bitcoinn": "3QH2XV7JxMRKXDqh87JG7LWuf7AeGfy",
                "boolean": true,
                "chave": "metadata_chave",
                "double": 10.5,
                "int": 1
            }
        }
    ],
    "page": 1,
    "limit": 1
}

Tamanho máximo da página

Por padrão, os endpoints da API que suportam paginação aceitam no máximo 100 itens por página (limit=100). Essa restrição ajuda a garantir um desempenho ideal e evita tamanhos excessivos de payload. Se seu caso de uso requer a recuperação de um número maior de itens por requisição, você pode substituir esse limite definindo a variável de ambiente MAX_PAGINATION_LIMIT na configuração da sua implantação (arquivo .env).
Aumentar o limite de paginação pode resultar em tempos de resposta mais lentos, dependendo do volume de dados e das condições da infraestrutura. Certifique-se de testar completamente em ambientes de homologação antes de aplicar a mudança em produção.
Para atualizar essa configuração no Kubernetes:
kubectl edit configmap midaz-transaction -n midaz

# Set the new value for MAX_PAGINATION_LIMIT

kubectl rollout restart deployments midaz-transaction -n midaz
O Midaz e todos os seus serviços de plugins herdam esse comportamento.