<img height="1" width="1" style="display:none" src="https://www.facebook.com/tr?id=266259327823226&amp;ev=PageView&amp;noscript=1">

API-kehityksestä liiketoiminnalle kiinnostavaa Power BI:n avulla

API:t eli ohjelmointirajapinnat ovat tänä päivänä kiinteä osa modernia Data Platformia. Ei pelkästään tiedon lähteenä, vaan myös tiedon jakelukanavana. Rajapintojen etuina ovat keskitetty tietoturva, yhdenmukainen datamalli sekä kehityksen joustavuus ja skaalautuvuus. Ei siis ihme, että meille data-alan ammattilaisille näiden käyttäminen ja rakentaminen on tuttua. API-kehittämisessä, kuten muussakin Data Platform -kehityksessä, ongelmana on usein saada liiketoiminnan kehittäjät innostumaan näistä toiminnalle tärkeistä rajapinnoista ja niiden käytöstä. Kun henkilöille joilla ei ole taustaa ohjelmisto- tai datakehityksessä yrittää kertoa hienosta datatoteutuksesta, jossa vaikeasti saavutettava tai jopa täysin uusi tietojoukko on nyt saatavilla, on hyvä varautua melko hiljaiseen vastaanottoon. Ja tämä on täysin ymmärrettävää, koska innostuminen abstraktista datatarjonnasta on kenelle hyvänsä vaikeaa. Jos datatyön lopputuloksena on taas käyttäjille tarjottava käyttöliittymä, kuten raportti tai applikaatio, on sellaisesta käsinkosketeltavasta tuotoksesta jo paljon helpompi olla kiinnostunut. Kysymys siis kuuluu, miten saada API-kehityksen tulokset liiketoiminnalle konkreettisimmaksi? Vastaus yksinkertaistettuna: visualisoimalla rajapinnan tuottama data.

Onneksi API-rajapintojen visualisointi on kohtuullisen helppoa. Power BI tukee REST-rajapintoja natiivisti, ja niistä tiedon lataaminen raportille onnistuu yleensä ilman huomattavaa työmäärää. Käytännössä minuuteissa tai tunneissa. Myös Azuren API Managementin kautta julkaistavat rajapinnat ovat yhteensopivia Power BI:n kanssa. Se kuinka helppoa Data Platformin rajapinnoista ladatun tiedon hyödyntäminen Power BI:ssä on, riippuu hyvin suuresti siitä, miten hyvin rajapintojen tietomallit ja käytännöt ovat suunniteltu. Rajapintojen laadun vaikutus ei jää pelkästään raportointityövälineisiin, vaan se ulottuu kaikkiin tahoihin, jotka tietoa hyödyntävät. Kehittäjille on huomattavan paljon miellyttävämpää lähteä käyttämään rajapintoja, joiden rakenne on jo entuudestaan tuttu, verrattuna tilanteeseen, jossa joka ikinen kerta täytyy pysähtyä tutkimaan millaisessa muodossa se data tällä kertaa on tarjolla. Eikä hyvin rakennetun rajapinnan hyödyt pääty edes kehittäjien työn mielekkyyden lisäämiseen, vaikka se näin kirjoittajan täysin puolueettomasta näkökulmasta onkin äärimmäisen tärkeää, vaan sillä on suora vaikutus myös työmääriin. Yhtenäistetty rajapintapalvelu säästää aikaa kaikilta, jotka dataa hyödyntävät, vähentämällä turhan tutkivan työn määrää. Hyvin toteutettuna rajapinnat siis säästävät rahaa.

Palatakseni takaisin itse asiaan eli API:en tarjoaman tiedon visualisointiin sisäisessä markkinointitarkoituksessa. Kun liiketoiminnan edustajille pystyy visualisoimaan tarjolla olevaa dataa, on vastaanotto lähtökohtaisesti lämpimämpi, koska lopputulos on konkreettinen ja ymmärrettävä. Visualisoidun tiedon avulla voidaan yhdessä tutkia missä muodossa tieto on rajapinnasta saatavilla, miettiä mihin sitä voisi käyttää ja millaista jatkokehitystä rajapinnoille olisi hyvä tehdä. Kun lopputulos on visualisoituna, niin myös henkilöt, jotka eivät ymmärrä syvällisesti taustan teknistä toteutusta, pääsevät mukaan arvioimaan lopputulosta aivan uudella tavalla, ja voivat tarjota omaa erikoisosaamistaan ja näkökulmaansa jatkokehityksen tueksi. Näin saadaan kaikki pikkuhiljaa totutettua rajapintojen käyttöön, ymmärtämään niiden arvoa kehityksessä, sekä arvostamaan niiden tuomia etuja.

Helppo pääsy hyvälaatuiseen dataan on tärkeä osa liiketoiminnan digitalisaatiossa. Rajapinnoilla pystytään poistamaan esteitä tiedon saatavuudesta, ja tuomaan tieto lähemmäksi liiketoimintaa visualisoimalla tuotokset.

Kun Data Platformin kehitys muuttuu IT-vetoisesta projektista liiketoiminnan vaatimukseksi, on siitä mahdollista rakentaa sellainen tärkeä ydinjärjestelmä, jollainen sen digitalisoituvassa yrityksessä tulisikin olla.

Power BI:n kytkeminen API Managementin kautta julkaistuun rajapintaan

Miten siis käytännössä voidaan Power BI:hin ladata tietoa API Managementin kautta julkaistusta rajapinnasta? Ensinnäkin on tärkeää, että rajapinnan rakenne on hyvin suunniteltu. Tässä esimerkki rajapinnan rakenteesta, jota Power BI tukee hyvin. Tietosisältö rajapinnassa on historioitu sääennuste.

  • Lista päivämääristä – Historiointipäivämäärät/ajat listana
    (Eli milloin ennuste on luotu)
    • Lista ennusteajoista
      (Eli aikaleimat joille löytyy ennuste rivin historiointipäivämäärällä. Historiointi hetkestä 3 tunnin välein 2 viikkoa eteenpäin)
      • Ennustettava suure ja arvo parit
        (Kuten esimerkiksi: lämpötila, -14 Celsiusta)

API Data Structure

Tässä tärkeimpänä antina on käyttää listaa silloin, kun kyseessä todella on listaobjekti, eli 1-N kappaletta samankaltaisia ilmentymiä jostakin asiasta. Päivämäärä on hyvin tavallinen ilmentymä tällaisesta tiedosta. Esimerkissä on kaksi sisäkkäistä listaa eli historiointipäivämääriä, joille jokaiselle löytyy ennusteaikoja.

Lokaatio, parametrit ja tunnistetiedot

Jotta tiedon voisi ladata rajapinnasta, täytyy määritellä lokaatio, parametrit sekä tunnistetiedot. APIM-rajapinnan tapauksesta ne löytyvät kätevimmin seuraavista paikoista.

APIM Test Get URL

Ensimmäiseksi tiedon hakemiseksi tarvittavat parametrit ja osoite löytyvät APIM APIs -paneelin kautta halutun rajapinnan Test-ikkunasta. Ikkunaa on muuten kätevä käyttää varmistamaan, että annetuilla parametreillä saadaan myös odotettu tulos.

APIM Subscription Key

Varsinainen tunnistetieto haetaan Subscription-välilehdeltä. Jotta rajapintaan pääsee ylipäätään käsiksi, tulee APIM luoda tilaus (Subscription), jolla on oikeus haluttuun rajapintaan. Tämä on APIM-peruskäytäntö, joten siihen en lähde pureutumaan syvemmän tässä blogissa.

Power BI käyttämään rajapinnan tietoja

Get Data Web

Haetuilla tiedoilla voidaan Power BI yhdistää käyttämään rajapinnan tietoja. Lähdetyyppinä käytetään geneeristä Web-lähdettä. Lisätään headerit tukemaan APIM-rajapinnan kyselyä ja ladataan tiedot.

From Web Input Headers

Blogi käsittele rajapintojen käyttöä lähinnä demonstrointitarkoituksessa, mutta niitä on mahdollista toki käyttää myös tuotantototeutuksissakin. Tuotantokäytössä, verrattuna esiteltyyn POCiin, tulisi vähintään vaihtaa API Key tulemaan parametristä. Lisäksi rajapinnan parametrien luonteesta riippuen tulisi niitä mahdollisesti muuttaa dynaamisiksi tai konfiguroitaviksi. Molemmat muutokset onnistuvat tarvittaessa tietolähteen advanced editor -ikkunan kautta.

JSON-muotoinen tietolähde Power BI:n tietomalliksi

JSON-muotoinen tietolähde ei kuitenkaan aivan suoraan käänny Power BI:n tietomalliksi. Muutokset ovat kuitenkin mahdollista tehdä käyttöliittymästä erittäin kätevästi. Järkevä tietomalli auttaa vähentämään tietomallin muutostyötä todella paljon. Esimerkissä listat tulee avata riveiksi ja sarakkeiksi painamalla sarakkeiden nimien vierestä löytyvää nappia.

Neljällä porautumisella tietomalli saadaan hajotettua JSON-muodosta taulukkomuotoon:

api-kehityksesta-liiketoiminnalle-kiinnostavaa-power-bin-avulla

Muokkaukset:
Tämän jälkeen täytyy toteuttaa vielä normaalit tiedon muokkaukset ja muunnokset. Esimerkissä on mukana pisteen muuttaminen pilkuksi, sekä päivämäärien että numeeristen sarakkeiden tietotyypitys.

api-kehityksesta-liiketoiminnalle-kiinnostavaa-power-bin-avulla-2

Lopputulos

Tietomalli on nyt valmis, jonka jälkeen vielä muutama klikkaus, ja saadaan näkyville rajapinnan tuottamaa tietoa. Tässä visualisoituna osa 10000 rivin datasetistä. Tästä on jo paljon mukavampi lähteä rakentamaan kiehtovaa demoa, kuin näyttää postmanilla haettua lähdedataa JSONina.

Drag And Drop To Create Graph

Kirjoittaja
Picture of Marko Oja
Marko Oja

Data-arkkitehti, joka auttaa asiakasta ymmärtämään tekniikan mahdollisuudet ja muuntaa innovatiiviset ideat teknisiksi ratkaisuiksi. Ketterät kehitysmenetelmät ja kehitystyötä tukevat prosessit ovat lähellä Markon sydäntä.

Tilaa blogi