ARCHIVE FILE
Slik bygger du et robust API
Alle elsker APIer. Det tror i alle fall jeg, for det gjør jeg. Det er morsomt å lage og morsomt å bruke. Det er heller ikke særlig vanskelig. De fleste med litt erfaring kan bygge et enkelt API.
Det er likevel enkelte ting som gjør bygging av APIer vanskelig. Hvem som skal få lov til å hente data eller oppdatere APIet er ofte en utfordring. Områder som vedlikehold, utvidelser og versjonskontroll er andre ting som gjør bygging av APIer litt trått.
Det var under Zendcon i California høsten 2013 at jeg for første gang ble introdusert for det jeg nå skal snakke om. Det var forhåndsannonsert at vi skulle få få presentert en stor nyhet under konferansen, men det var litt diffust hva det var. Vi hadde navnet, Apigility, men ikke så mye mer.
Personlig var jeg litt skeptisk, og kjente på følelsen at dette nok kom til å være OK, men kanskje ikke så mye mer. Det skulle snart vise seg at jeg måtte gjøre den tanken til skamme, for da Matthew O'Phinney ankom scenen og presenterte rammeverket med sin sedvanlige stoiske ro, kjente jeg at stemningen i rommet steg. Flere utbrøt i klappesalver i ren begeistring etterhvert som funksjonaliteten ble demonstrert. Selv ble jeg frelst.
Så hva er Apigility, og hvorfor vekker det slik begeistring? Det er fordi at selv om det enkelt å lage et enkelt API, er det vanskelig å lage et API med mye funksjonalitet. Apigility tar vekk det slitsomme og lar deg gjøre det som er morsomt - å bygge selve funksjonaliteten. Systemet støtter flere typer autentisering. Det støtter versjonering og validering, gir deg beskjed når noe er feil (og hva som er feil), samt automatiserer dokumentasjonsprosessen. At det er fundert på Zend Framework 2, et anerkjent og solid MVC-rammeverk, er også en klar fordel.
Slik kommer du i gang
Du trenger PHP for å kjøre Apigility.
Last ned rammeverket her, eller gjør det fra terminalen med denne linjen
curl -sS http://apigility.org/install | php
Hvis du installerer rammeverket med curl som over vil rammeverket bli lastet ned og bli startet med den innebygde webtjeneren til PHP. Du kan derfor bare gå til http://localhost:8888/ for å komme i gang.
Trykk på Get Started, velg APIs fra menyen, trykk på Create New API og gi det et navn. Du kan nå velge å lage en REST-tjeneste eller en RPC-tjeneste. Velger du REST, får du valget mellom å lage en tjeneste som automatisk kobler opp mot en databasekobling eller en som du programmerer til å gi deg de resultatene du ønsker å eksponere.
Konfigurere en database-tjeneste
Dersom du vil lage en database-tjeneste, må du første konfigurere en database-adapter. Det gjør du ved å velge Settings fra menyen og så Database Adapters fra listen. La oss anta at du vil sette opp en MySQL-adapter. Gi adapteret et navn, og velg Pdo_Mysql som drivertype.
Angi hvilken database adapteret skal kobles mot, samt brukernavn, passord og eventuell tjener og port hvis disse avviker fra standarden.
Her finner du scheme for blogg-tabellene jeg opprettet.
Lag en REST-tjeneste
Du er nå klar til å lage din første REST-tjeneste.
Klikk på APIs og det APIet du opprettet tidligere. Velg Rest services fra menyen og klikk på Create New REST service. Velg DB-Connected, og velg adapteret du nettopp konfigurerte fra nedtrekksmenyen. Skriv til slutt inn tabellnavnet du vil eksponere. I dette tilfellet har jeg knyttet adapteret mot en database kalt "blogg" og tjenesten mot tabellen "artikler".
Gratulerer, nå er APIet ditt klar til bruk! For å hente ut data via terminal kan du enkelt gjøre det via dette kallet:
curl -s -H "Accept: application/hal+json" http://localhost:8888/artikler | python -mjson.tool
Du kan også bruke en tjeneste som Postman for å teste APIet. Her er et eksempel fra min demo:
[image omitted from archive]