1
resposta

JSON Paginado

no exemplo da aula o Json de retorno começa da forma abaixo, pois está definido no db.json:

{ "pensamentos": [ {

o que fazer para consumir o json paginado que vem do backend na forma abaixo?

{ "content": [ {

1 resposta

Opa, Luiz! Tudo bem contigo?

No exemplo da aula, os dados são consumidos da API utilizando a classe HttpParams do Angular para passar os parâmetros de paginação na URL. No seu caso, a estrutura do JSON é um pouco diferente, mas a ideia é a mesma.

A estrutura do JSON que você está recebendo é:

{
  "content": [
    {
      // dados aqui
    }
  ]
}

Para consumir esses dados, você pode fazer algo semelhante ao que foi feito na aula. Primeiro, você precisa criar uma interface para representar a estrutura do seu JSON. Algo tipo isto:

interface PaginatedResponse<T> {
  content: T[];
}

Aqui, o T é um tipo genérico que você pode substituir pelo tipo de dados que você está recebendo no array content.

Depois, ao fazer a requisição HTTP, você pode usar essa interface para tipar a resposta. Vou deixar um exemplo deste modo:

this.http.get<PaginatedResponse<SeuTipoDeDado>>(this.API, { params: params })

Aqui, SeuTipoDeDado deve ser substituído pelo tipo de dados que você está recebendo no array content, ok?

Por fim, para acessar os dados, recomendo que faça algo parecido com isto:

.subscribe((response: PaginatedResponse<SeuTipoDeDado>) => {
  this.dados = response.content;
});

Nós temos que o this.dados seria um array no seu componente onde você guarda os dados recebidos. Tcharam!

Se outra dúvida surgir, estamos disponíveis.

Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.