Base de conhecimento
Encontre respostas para suas dúvidas em quatro fontes de conhecimento diferentes ao mesmo tempo, simplificando o processo de pesquisa.

Cross Segmentos - TOTVS Backoffice Linha Protheus - ADVPL - Paginação com page e pageSize

time.png Tempo aproximado para leitura: 00:02:00 min

Dúvida

Como utilizar a paginação no desenvolvimento de uma API?

Ambiente
Cross Segmento - TOTVS Backoffice (Linha Protheus) - AdvPL - Todas as versões

Solução

Para paginação em API, você pode utilizar o page e pageSize.
No seu código fonte, pode definir o page e o pageSize com conteúdo Default, por exemplo:

Default self:page := 1
Default self:pageSize := 10

Dessa forma, se não for passado nada na URL no queryparam, por padrão a página definida para listar os itens será a 1 e o número de registros nesta página, 10.

Para tratativa da definição da página e quantidade de registros, segue um exemplo que pode utilizar numa API com método GET para listagem de clientes(SA1):

BEGINSQL Alias cAliasSA1

SELECT SA1.A1_COD, SA1.A1_LOJA, SA1.A1_NOME
FROM %table:SA1% SA1
WHERE SA1.%NotDel%
%exp:cWhere%

ENDSQL

If ( cAliasSA1 )->( ! Eof() )

// Identifica a quantidade de registro no alias temporário
COUNT TO nRecord

// nStart -> primeiro registro da pagina
// nReg -> numero de registros do inicio da pagina ao fim do arquivo

If self:page > 1
nStart := ( ( self:page - 1 ) * self:pageSize ) + 1
nReg := nRecord - nStart + 1
Else
nReg := nRecord
EndIf

// Posiciona no primeiro registro.
( cAliasSA1 )->( DBGoTop() )

// Valida a exitencia de mais paginas
If nReg > self:pageSize
oJsonCli['hasNext'] := .T.
Else
oJsonCli['hasNext'] := .F.
EndIf
Else

// Nao encontrou registros
oJsonCli['hasNext'] := .F.
EndIf


No postman por exemplo, a minha URL ficaria dessa forma para definir a página e quantidade de itens por página:

Dessa forma, estaria listando a página 2 e 5 registros neste página.

Saiba mais:
Guia de implementação AdvPL
ADVPL - Em um WS REST, definir a quantidade de informação retornada em um método GET

Esse artigo foi útil?
Usuários que acharam isso útil: 0 de 0

0 Comentários

Por favor, entre para comentar.
X Fechar

Olá ,

Há pendência referente a um de seus produtos contratados para a empresa ().

Entre em contato com o Centro de Serviços TOTVS para tratativa.

Ligue! 4003-0015 opção 4 e 9 ou registre uma solicitação para CST – Cobrança – Verificação de pendências financeiras . clique aqui.

TOTVS

X Fechar

Olá ,

Seu contato não está cadastrado no Portal do Cliente como um perfil autorizado a solicitar consultoria telefônica.

Por gentileza, acione o administrador do Portal de sua empresa para: (1)configurar o seu acesso ou (2)buscar um perfil autorizado para registro desse atendimento.

Em caso de dúvidas sobre a identificação do contato administrador do Portal, ligue (11) 4003-0015, opção 7 e, em seguida, opção 4 para buscar o suporte com o time de Assessoria ao Portal do Cliente. . clique aqui.

TOTVS

X Fechar

Olá ,

Para o atendimento de "Consultoria Telefônica" você deverá estar de acordo com o Faturamento.

TOTVS

X Fechar

Olá,

Algo inesperado ocorreu, e o usuario nao foi reconhecido ou você nao se encontra logado

Por favor realize um novo login

Em caso de dúvidas, entre em contato com o administrador do Portal de Clientes de sua empresa para verificação do seu usuário, ou Centro de Serviços TOTVS.

Ligue! 4003-0015 opção 4 e 9 ou registre uma solicitação para CST – Cadastros . clique aqui.

TOTVS

Chat _

Preencha os campos abaixo para iniciar o atendimento:

Chat _