Estoy tratando de llamar a la API personalizada en angular, pero por alguna razón no la llama. Antes de esto hice 10 funciones en angular (en _api.service.ts) que llaman a la API web de la misma manera y son correctas, se llama a mi API web y se devuelven los datos, todo está bien. Luego hice un método más en la API web y un componente más en angular (se llama a la función getList()), y no funcionó, nunca se llama a la API.
getList(id: string, chosen: string): Observable<StopListModel[]> { let myUrl: string = API_URL + '/stop/list'; myUrl += '/' + id; myUrl += '/' + chosen; //debugger goes to this line, url is correct but API not called return this.http.get<StopListModel[]>(myUrl, this.httpUtils.getHTTPHeader()); }Cuando estaba depurando, vi que la URL para la API se envía correctamente desde angular, como en otras 10 funciones que llaman con éxito a la API en mi proyecto, por lo que creo que no necesito enviarle código desde mi API web. Estaba confundido, así que moví la línea que llama a getList() del componente nuevo al componente existente, donde ya sé que mi _api.service llamará con éxito a la API web porque en ese componente hay una función (por ejemplo, getUsers() ) que llama correctamente a la API. Y no funcionó, no se llama a la API para getList().
Supuse que había algún problema con la API web para getList(), pero solo para estar seguro en ese segundo componente, llamé a otra función _api.service (que funciona cuando se llama desde otro componente) y, sorprendentemente, no se llamó a la API para esa función. o.
Luego vi cuál creo que es el problema: cuando trato de llamar a cualquier función en cualquiera de mis componentes, todas estas funciones "nuevas" nunca llaman a la API, solo las antiguas que ya han estado allí, a pesar de que funcionan correctamente en su propios componentes.
export class DetaljiStopoviComponent{ stops$: Observable<StopStatisticsModel[]>; list$: Observable<StopListModel[]> constructor( private apiService: APIService, route: ActivatedRoute ) { var id = route.snapshot.params['id']; this.stops$ = this.apiService.getStopStatistics(id); //this works, it was there before - but any other calling I add under this, API is not called (this is the case for every component, every function) this.list$ = this.apiService.getList(id, '3'); //this is the newest one, I can't make it call API even in the empty components } }Estoy tan confundido y no tengo experiencia en angular, tengo mucha curiosidad por saber cuál es el problema. No creo que algo esté mal con la API web, pero no estoy seguro. ¿Alguien tiene alguna sugerencia?
Creo que es un problema de sintaxis, para obtener el método intente esto
return this.http.get<StopListModel[]>(myUrl, {headers:this.httpUtils.getHTTPHeader()});Parece que te olvidaste de suscribirte a:
this.stops$ = this.apiService.getStopStatistics(id); this.list$ = this.apiService.getList(id, '3');Creo que this.stops$ funciona para usted porque en algún lugar de la plantilla tiene una tubería asíncrona (stops$ | async).
Así que intenta hacer:
this.list$.subscribe(response => console.log(response));después de esa solicitud debe enviarse