PAGINAçãO API LOJA INTEGRADA

 Tópico anterior Próximo tópico Novo tópico

PAGINAçãO API LOJA INTEGRADA

C#

 Compartilhe  Compartilhe  Compartilhe
#496630 - 02/04/2021 21:51:11

ATSILVA
SAO PAULO
Cadast. em:Março/2014


Última edição em 02/04/2021 21:53:55 por ATSILVA

Fiz integração do meu sistema com API da Loja Integrada. Porém estou com problema na paginação de dados quando existem muitos registros a retornar no json.

//preenche classe com registros localizados
var JsonConvert = new JavaScriptSerializer();
classeCategoria = JsonConvert.Deserialize<classeCateg.classeCategoria>(responseData.Content.ToString());

//verifica se existe mais registros para busca (paginação)
while (classeCategoria.meta.offset < classeCategoria.meta.total_count)
{
   client = new RestClient('https://api.awsli.com.br/' + classeCategoria.meta.next.ToString().Replace('/api/', ''));
   request = new RestRequest(Method.GET);
   request.AddHeader('Content-Type', 'application/json');
   request.AddParameter('chave_api', cChaveAPI);
   request.AddParameter('chave_aplicacao', cChaveAplicacao);
   request.AddParameter('undefined', ParameterType.RequestBody);
   responseData = client.Execute(request);

   //verifica se localizou os registros
   if (responseData.StatusDescription.ToUpper() == 'OK')
   {
      //inclui informações na classe
      classeCategoria = JsonConvert.Deserialize<classeCateg.classeCategoria>(responseData.Content.ToString());
   }
}

O problema é que a classeCategoria não guarda todos os registros. Ele sempre atualiza (fica) com os últimos.




#496631 - 02/04/2021 23:53:55

KERPLUNK
RIO GRANDE DO SUL
Cadast. em:Junho/2009


Membro da equipe
Seria melhor fazer a paginação no server e não no client. Dê uma pesquisada sobre OData.

_______________________________________________________________________
Virei Orculo!
The end is nigh, be ready for the nukes!


#496633 - 03/04/2021 09:51:28

ATSILVA
SAO PAULO
Cadast. em:Março/2014


Última edição em 03/04/2021 10:43:11 por ATSILVA

Desculpa, não encontrei nenhum exemplo da utilização desse comando OData ao consumir API Rest.
Os dados estão vindo corretamente e a paginação esta sendo feita (não sei se da forma mais correta ou 'elegante', mas, esta fazendo).
Meu problema é somente em guardar os registros trazidos pela API.
No código acima (primeiro post), os dados anteriores estão sendo substituídos pelos novos dados (tenho sempre os ultimos 20 registros guardados em vez de 293 que é o total de registros).




#496635 - 03/04/2021 16:50:34

KERPLUNK
RIO GRANDE DO SUL
Cadast. em:Junho/2009


Membro da equipe
OData não é um comando. É uma estrutra de código. Você vai aplicá-la ao seu server.
Se você não é quem desenvolveu o server e está só consumindo, sugiro usar algum framework javascript que o faça, vai facilitar sua vida.
O DataTables faz isso de forma magistral, além de ter uma cacetada de opções e funcionalidades muito úteis e ser gratuito.

_______________________________________________________________________
Virei Orculo!
The end is nigh, be ready for the nukes!


 Tópico anterior Próximo tópico Novo tópico


Para responder este tópico o login é requerido
Se você já possui uma conta de usuário por favor faça seu login
Se você não possui uma conta de usuário use a opção Criar usuário