Miten lähteä avaamaan rajapintoja?

Miten lähteä avaamaan rajapintoja?

API-rajapinnoilla voidaan rakentaa vaikka kokonaan uusia liiketoimintamalleja, ja monesti ne tuovat silkkaa säästöä. Miten rajapintojen avaamiseen kannattaa lähteä?

Rajapinta on englanniksi interface ja API tarkoittaa suomeksi käännettynä ohjelmiston kehitysrajapintaa. Käytän tässä blogipostauksissa API-rajapinta-ilmaisua, vaikka se onkin vähän tautologinen.

Klassinen ja mahdollisesti yksinkertaisin esimerkki rajapinnasta on verkkosivut. Jos organisaatiollasi on siis verkkosivut, tarjoat kömpelönä APIna html-koodia. Fiksumpi rajapinta voisi olla rakennettu hyödyntämään esimerkiksi verkkosivun tuotantojärjestelmää REST-rajapintojen pyörittämiseen.

HTML-koodi ja REST-rajapinnat ovat ohjelmisto-, käyttöjärjestelmä- ja lisenssivapaata. Voit tarjota HTML:ää linux-palvelimella ja sitä on yhtä helppo lukea iPhonella kuin Windows-tietokoneellakin. Hyvä rajapinta ei edellytä samojen laitteiden tai ohjelmistojen ostamista, joita sen toisella osapuolella on.

 

Muista tietoturva

Kaikki eivät ole aina kuitenkaan suoraan avoimien rajapintojen ystäviä. Tietoturvapuolella monella on kiusaus joko refleksinomaisesti todeta, että tosi hienoa kun kokeillaan uusia juttuja, mutta suin päin ei sellaisia pitäisi kokeilla. Tai jopa sanoa, että ei kannata kokeilla – koska emme kaikkein vaikeimpia rajapintoja osaa kuitenkaan tehdä, on ajanhukkaa puhua niistä.

Tietoturva on otettava tosissaan, mutta päätä ei kannata laittaa kuitenkaan pensaaseen. Rajapintojen turvallisesti tekeminen on mahdollista ja jopa välttämätöntä, jotta niitä osaa käyttää, kun moinen osoittautuu kaupallisesti välttämättömäksi.

Rajapinnoissa voi soveltaa sotasairaaloiden mallia ajankäytön priorisoinnille; jos ei ole pitkää kokemusta rajapinnoista, luottamuksellisille henkilötiedoille kannattaa varmasti aluksi sanoa ei. Ei aloiteta liian vaikeasta, potilas kuolee joka tapauksessa.

 

Opettele toiminnallisilla rajapinnoilla

Niin sanotuissa datarajapinnoissa on ideana, että niissä vain jaetaan tietoa, mutta niillä ei voi muuttaa tietoa. Lisäksi suoraviivaisimmissa ei varmasti ole edes henkilötietoja, jolloin niihin ei liity samoja riskejä.

Suoraviivaisen datarajapinnan tekeminen, jossa ei ole henkilötietoja, on helppoa. Neuvomme on, että kehitystiimille voi antaa varsin itsenäisen vastuun toteutuksesta, kunhan se tehdään laillisesti ja eikä se vaikuta organisaation toimintaan tai muuta tietoa missään.

Kiinnostavimpia sekä oppimisen että vaikuttavuuden kannalta ovat toiminnalliset rajapinnat, joihin ei kuitenkaan vielä liity henkilötietoja. Näihin kannattaa laittaa paukkuja, sillä ne ovat kohtuullisen haastavia, joten niiden rakentaminen antaa oppia oikeassa kontekstissa. Kun keskittyy luottamuksellisuuteen ja eheyteen, ja hoitaa ne mahdollisimman hyvin, voi edetä pikkuhiljaa myös henkilötietojen käsittelyä sisältäviin rajapintoihin.

 

Kun toimeen sitten ryhtyy, mitä pitäisi ottaa huomioon?

Kannattaa aloittaa siis avaamalla se kaikkein helpoin juttu, datarajapinnat. Tiimi voi tehdä sen itsenäisesti, ja siihen ei tarvitse laittaa aivan hirveästi paukkuja. Kannattaa kuitenkin varmistaa, ettei kukaan ole avaamassa rajapintoja yksin.

On hirveän vaikea tehdä turvallista työtä tehokkaasti. Projektissa on oltava mukana ainakin kaksi ihmistä, joista toisen tehtävä on tehdä ja toteuttaa, ja toisen työnä on tarkastaa, että laatu säilyy korkeana ja asiat tapahtuvat tietoturvallisesti ja säännösten mukaisesti. Asetelma on kuin keskushyökkääjällä ja maalivahdilla.

Datarajapintoja avatessa kannattaa varmistaa, että aikaa on vähän enemmän kuin jos sama data olisi tuotu organisaation verkkosivulle. Kun rajapintoja ollaan avaamassa ensimmäistä kertaa, opetellaan uutta. Kun rutiinit ovat ajan myötä kasassa, rajapintojen avaamisen pitäisi olla helpompaa kuin verkkosivujen avaaminen, sillä API-rajapintoihin ei liity esimerkiksi visuaalisen käyttöliittymän suunnittelua.

 

Ennen kuin etenet, suunnittele

API-rajapinnoissa hyvin suunniteltu on puoliksi tehty. Tekemisellä aloittaminen on hyvää hakkerieetosta, mutta mallilla tulee helposti avanneeksi enemmän kuin oli tarkoitus tai vääriä asioita. Sähläämällä taas voi käydä niin, että avaa dataa, joka ei kiinnosta ketään tai joka on muodossa, jossa kukaan ei voi sitä hyödyntää.

Dataan pitää myös tutustua. On täysin normaalia, että tiedossa, jossa ei pitänyt olla henkilötietoja, onkin seliteteksteihin laitettu sosiaaliturvatunnuksia, vaikka ohjeistus toisin sanoo. Varmista siis mitä rajapinnan kautta kulkeva data oikeasti sisältää.

Tietosuojalainsäädäntö on syytä tuntea huolella, varsinkin siinä vaiheessa kun rajapintaan liittyy henkilötietoja. Lakia tulee tuntea paitsi sen takia, ettei tule rikkoneeksi sitä, mutta myös siksi, että on ihan yhtä tärkeää osata perustella muille, miksi ei riko säännöksiä. Rajapintojen avaaminen voi herättää pelkoa esimerkiksi tietosuojarikkeistä, jolloin on hyvä tietää, mitä on tekemässä ja olla selkeät sävelet, jottei tärkeä työ mene hukkaan väärien pelkojen vuoksi.

 

Tunne lisenssit ja teetä uhka-analyysi

Pelkkä datan tunteminenkaan ei riitä, pitää olla myös selkeä ymmärrys siitä, mistä dataa luetaan, ja mistä siihen kirjaudutaan. Tieto pitää tuntea yhtä hyvin fyysisellä tasolla, tietojärjestelmätasolla sekä loogisella tasolla. Jos esimerkiksi osoite on väärin, on oltava kyky ymmärtää, mistä väärinkirjaus johtuu, ja kenen vastuulla on korjata se. Huonolaatuisen datan jakaminen ei kannata.

Uhka-analyysin teettäminen on myös kannattavaa kun suunnittelee rajapinnan avaamista. Se tarkoittaa sitä, että joku tietoa ja järjestelmiä ymmärtävä listaa kaikki mahdolliset kohdat, mikä rajapinnan avaamisen johdosta voi mennä pieleen. Voiko rajapintaa käyttää esimerkiksi luottamuksellisen tiedon joutumiseen vääriin käsiin?

Lisenssit kannattaa myös tuntea. Sellaiset sopimukset eivät ole harvinaisia, joissa rajapintojen käyttö on järjettömän kallista. Olisi piinallista herätä Oraclen myyntimiehen soittoon, jonka mukaan lisenssikustannukset ovat nousseet 15 000 kertaisiksi.

Katso webinaari: API-liiketoimintamallit

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *