Rajapinta vai SDK?

Updated: May 25, 2018


Kysymys johon törmään silloin tällöin erilaisten sidosryhmien kanssa keskustellessa on, että mikä ero on rajapinnalla ja SDK:lla? Onko meillä pakko olla SDK:ta? Vastaukseni on monesti, että riippuu yrityksestänne ja rajapinnoistanne sekä siitä ympäristöstä jossa toimitte. Monesti asiakas alkaa suuntaamaan ajatuksiaan oikeaan suuntaan, kun esitän alla olevia vertailuja API:n ja SDK:n välillä. SDK:t ja API:t kulkevat kuitenkin nykyään usein käsi kädessä, johtuen siitä että API:t tuotetaan joka tapauksessa. Näin ollen niiden hyödyntäminen SDK:ssa on luontevaa ja kustannustehokasta.


API tarjoaa joustoa - SDK nopeutta ja vaivattomuutta

API:n etuina on suuri joustavuus. Toisin sanoen hyödyntäjä joka tekee sovellusta, jossa APIsi on hyötykäytössä, voi hän päättää mitä toimintoja APIsta käyttää ja missä järjestyksessä. Lisäksi hyödyntäjä voi optimoida resurssiesi käyttöä APIn kohdalla. Toki API:n kohdalla voidaan tarjota myös valmiita koodiesimerkkejä, jolloin lähestytään jo SDK:ta.


SDK eli software development kit kohdalla hyödyntäjän kädet on enemmän sidottu. Toisaalta SDK sisältää usein käyttöä helpottavia toimintoja joissa APIn eri metodeja käytetään yhdessä. Näin ollen hyödyntäjällä on vähemmän “pään vaivaa”.


API on hyödyntämisessä agnostinen ohjelmointikielen suhteen

API ei ota kantaa millä ohjelmointikielellä hyödyntäjä rakentaa omaa palveluaan. Hyödyntäjä voi käyttää APIa haluamansa ohjelmointikielen avulla, koska etenkin jos kyseessä on REST API, hyödyntäminen tapahtuu http protokollaa pitkin kutsumalla (url).


SDK puolestaan tuotetaan tietylle ohjelmointikielelle. Seuraava kysymys on asiakkailta tässä kohdin: “No mille koodauskielelle se sitten pitää tuottaa?” Jos ei tiedä kohderymän yleisimmin käyttämiä sovelluskehitysalustoja, on hyvä valinta ottaa joku suosituimmista ohjelmointikielistä- tai alustoista kohteeksi eli siis Java, Python, Node.js. Tässä kohdin voi houkuttaa tuottaa SDK:t useille kielille, mutta on syytä pitää mielessä niiden elinkaari ja ylläpidon sekä kehittämisen kustannukset.


SDK voidaan generoida APIn koneluettavasta kuvauksesta. Yleisin REST rajapintojen koneluettava kuvaus on Open API speksiin perustuva. Sille on olemassa avoimen lähdekoodin toteutuksia SDK generointiin. Ihan sellaisenaan SDK:t eivät ole valmiita, vaan vaativat ihmisen kosketusta ollakseen hyvin tuotteistettuja ja helposti käytettäviä sekä valmiiksi paketoituja jakeluun.


Monesti alustat (esim Facebook) tarjoavat SDK:t, jotta sovellusten kehittäminen alustan päälle on nopeampaa ja kontrolloidumpaa sekä samalla keino standardoida käytettyjä ratkaisuja. Vastaavasti muun muassa Androidille ja iOS:lle on omat SDK:t, mutta myös muiden toimijoiden tuottamia käyttäjärjestelmä kohtaisia SDK -paketteja.


Jakelukanavissa on eroa

API:en jakelu tapahtuu kehittäjäportaalien kautta. Tästä esimerkkinä vaikkapa Nordean open banking kehittäjäkeskus. Lisäksi API kannattaa lisätä sopiviin kanaviin kohderyhmien kannalta katsottuna. Jos tiedätte, että iso osa hyödyntäjistä on AWS käyttäjiä, on Amazon Webservices kauppapaikka oikein mainio valinta. Muita vaihtoehtoja on esimerkiksi ProgrammableWeb, joka on vanhin ja suurin API-katalogi.


SDK:n kohdalla suosittelen välttämään omien sivujen kautta esim zip -pakettina jakelua. Sen sijasta SDK:t kannattaa tuotteistaa ja laittaa jakeluun eri pakettienhallintajärjestelmien kautta kuten esimerkiksi pip (python) ja npm (node.js). Saavutettavat edut ovat ainakin parempi löydettävyys ja asennuksen helppous.


Kummassakin käyttöönotto itsepalveluna

Kummankin kohdalla on lähtökohtana itsepalvelu. SDK:n tai API:n hyödyntäjän tulee saada ottaa ratkaisu käyttöön sillä hetkellä kun halutaan. SDK:n kohdalla on taattava sujuva asennus, joka pitäisi olla helppoa kun sen vie pakettienhallinnan tasolle. Yhtä lailla API:n käyttöönotto pitää tapahtua minuuteissa. Tämä edellyttää hyvää dokumentaatiota, ehkäpä muutamaa koodiesimerkkiä hyödyntämisen havainnollistamiseksi ja API-avainten automaattista generointia.

©2018 by apitalisti
 

Yhteystiedot

Brändit

Apitalist is registered trademark of APInf Ltd

APIOps is registered trademark of Osaango Ltd and APInf Ltd

Tilaa kirja

API -talous 101 -kirja Alma Talent kaupassa!

Podcast

"Opi tuntemaan API -asiakkaasi" podcast -sarja

Lue lisää!