Många system tillgängliggör data via REST API:r och vi kan använda dessa i Power BI för att läsa ut information. I det här inlägget ska vi testa att bygga en första applikation som läser ut data från ett enkelt API-exempel. Kommande inlägg kommer att bryta ner mer komplicerade fall kring autentisering, sidhantering av data mm.
REST API:r
REST API:r fungerar på ett annat sätt än databaser som vi ofta också läser data från. Oftast gör att man ett webbanrop (http-protokoll) mot en server med hjälp av en URL och parametrar. I svaret man får tillbaka finns data som antingen kan användas direkt eller används för att slå upp fler detaljer.
De flesta system svarar med data i ett json-format även om t.ex. XML även förekommer. Json-data tolkas sedan av Power BI till data som vi är vana vid – tabeller och kolumner. Då data kan ha flera nivåer i hierarkier kan ett svar resultera i flera tabeller.
Polisens API över händelser
Polismyndigheten i Sverige har ett enkelt API för att hämta händelser kring ett urval av polisens utryckningar. Data från API:t kan inte tolkas som brottsstatistik då inte allt publiceras, men det kan ändå vara intressant att analysera.
För att använda polisens API kan man göra ett så kallat GET-anrop mot tjänstens URL: https://polisen.se/api/events. Du kan enkelt testa ett anrop genom att klicka på länken till API:t. Din webbläsare gör då ett GET-anrop och du får tillbaka en uppsättning data (det kan ta en stund innan allt har hämtats).
Eftersom vi inte specificerat vilket datum vi vill hämta händelser för så hämtades de senaste 500 raderna. Om det är ett krav eller ej att ange t.ex. datum bestäms av utvecklarna av API:t.
Läsa API-data i Power BI
För att läsa ut API-data i Power BI behöver vi skapa en ny rapport och där hämta data från en ny datakälla. Välj typen Web och ange https://polisen.se/api/events som URL. Det går bra att ansluta anonymnt (utan att ange användarnamn och lösenord).
Nu hämtas data från API:t och visas i Power Query.
Power BI har själv identifierat data som JSON och hittat tabeller och kolumner. Laddar vi nu in data får vi kolumner som vi kan bygga vanliga grafer med.