Meteo (apixu) service.

Net zoals bij de todo-app ga je alle functionaliteiten omtrent de meteo API groeperen in één service. De taak van de service is om de HTTP-aanvraag in te dienen en het antwoord van de weersgegevens terug te sturen naar de component(en) die de aanvraag deden.

Voor je de service kan uitwerken, heb je natuurlijk wel een API nodig die onze verzoeken kan verwerken. Voor deze toepassing gebruiken we de Apixu API. Deze dienst is tot 5000 API calls per maand volledig gratis. Het enige wat je nodig hebt, is een API-key.

Aan de hand van een aantal parameters kunnen we het resultaat beïnvloeden. De parameters die ons interesseren zijn:

Ziehier de weersvoorspelling van Geel. Vervang in de URL eerst de key (SECRET) door je eigen API-key!
https://api.apixu.com/v1/forecast.json?key=SECRET&q=Geel_belgium&days=7&lang=nl
TIP: voeg de Chrome-extensie JSON Formatter toe zodat je het resultaat mooi gestructureerd kan bekijken.

De velden die je dadelijk in de site verwerkt, zijn:

HttpClientModule

Let op: in onze toepassing maken we gebruik van de nieuwe HttpClientModule.
In online tutorials wordt nog vaak de verouderde (depricated in Angular 5) HttpModule besproken.

Om de data in de achtergrond op te halen, maken je via de HttpClient een AJAX request naar de apixu API. Voor je de HttpClient kan gebruiken, moet je de HttpClientModule eerst importeren. Omdat we deze module verder in de toepassing nog gebruiken, importeren we deze best in app.module.ts.
Eens de HttpClientModule geïmporteerd, kan je de HttpClient, via de constructor, in al je componenten en services injecteren.

Service aanmaken.