Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Erro ao Integrar com uma Api

Boa tarde estou tentando fazer um integração entre uma api local com uma outra linguagem que programo com o angular o Json que retorno nessa Api esta desta maneira - > entities: Array(10) 0: {asset: "123451 ", type: 0, item: "0001", description: "TESTE"} 1: {asset: "ATIV_02 ", type: 0, item: "0001", description: "ATIVO 02"} mas olhando no inspetor o angular me retorna a seguinte mensagem ERROR Error: Error trying to diff '[object Object]'. Only arrays and iterables are allowed saberiam me informar oque preciso fazer para corrigir esse erro ?

3 respostas

Fala aí Ronaldo, tudo bem? Você consegue postar o código do seu service? Provavelmente está tentando fazer iteração em algo que não é um array.

Espero ter ajudado.

import { Component } from '@angular/core';
import { HttpClient } from '@angular/common/http' ;

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
export class AppComponent {
  descri:string[] = []
   constructor(http:HttpClient  ){
     http.get<string[]>('http://localhost:8080/REST/WSATF001/entities').subscribe(descri => { console.log(descri); this.descri = descri});
   } 
}

aonde eu faço a chamada esta assim no html estou usando um ngfor

o serviço que eu estou tentando consumir esta assim

{"entities":[{"asset":"123451    ","type":0,"item":"0001","description":"TESTE"},{"asset":"ATIV_02   ","type":0,"item":"0001","description":"ATIVO 02"},{"asset":"ATIVO_01  ","type":0,"item":"0001","description":"ATIVO01"},{"asset":"JACA      ","type":0,"item":"0001","description":"TESTE"},{"asset":"JACA      ","type":0,"item":"0002","description":"TESTE"},{"asset":"JACA      ","type":0,"item":"0003","description":"TESTE"},{"asset":"JACA      ","type":0,"item":"0004","description":"TESTE"},{"asset":"JACA      ","type":0,"item":"0005","description":"TESTE"},{"asset":"JACA      ","type":0,"item":"0006","description":"TESTE"},{"asset":"JACA      ","type":0,"item":"0007","description":"TESTE"}],"hasNext":true}
solução!

Fala aí Ronaldo, você precisa pegar o entities dentro do seu this.descri.

A maneira atual você deve estar iterando o this.descri no seu HTML.

Mas precisa pegar as entities (que é o array):

http.get<string[]>('http://localhost:8080/REST/WSATF001/entities').subscribe(descri => { console.log(descri); this.descri = descri.entities});

Ou, no seu for você faz descri.entities.

Espero ter ajudado.