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": [ {
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": [ {
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!