6 frågor du bör ställa innan du integrerar mot ett tredjeparts API

2021-06-15

Cute coding

Innan du integrerar ett tredjeparts-API, kontrollera att dokumentationen är omfattande och tydlig. Ta reda på vilken autentisering som krävs och hur du får dessa uppgifter. Se till att det finns en testmiljö för att undvika att påverka produktionsdata. Var medveten om API anropsbegränsningar och kostnader för dessa begränsningar. Slutligen, förstå API responstid och uppdateringsfrekvens för att optimera användarupplevelsen.

1. Documentation, documentation, documentation, finns det dokumentation?

Det finns inget värre när man ska använda ett api och det inte finns någon dokumenatation. Det är som att försöka bygga en ikeamöbel utan instruktioner. Ju bättre dokumentationen är desto enklare blir det att integrera och använda API:et. Se till att dokumentationen är väl skriven, har tydliga och många exempel på båda vad anropet till API:et ska innehålla samt även vad den förväntade responsen är. Det ska också vara specificerat om det är Query-parameter, URI-parameter eller JSON-payload som anropet ska innehålla.

2. Hur fungerar autentisering?

Det finns flertal olika sätt att autentisera mot ett API. Se till att kolla upp i förväg vilken typ av autentisering API:et kräver och hur du får tag på dessa. Många gånger behöver man bli kund och sedan logga in hos leverantörens portal för att kunna komma åt sina autentiseringsuppgifter. Det är oftast olika autentiseringsuppgifter som behövs för produktionsmiljön respektive testmiljön.

3. Hur kan du testa din integration mot API:et?

Det är viktigt att kolla upp hur testning fungerar mot API:et. Finns det en sandbox miljö där du kan testa alla möjliga anrop utan att påverka produktionsdata? Om inte måste du säkerställa att alla anrop du göra inte påverkar produktionsdata. Om du inte kan testa din kod kommer det vara vilda västern när du produktionssätter, du har ingen aning om integrationen du byggt fungerar eller inte. Ofta har testmiljöer annan begräning av anrop jämfört med produktionsmiljön.

4. Hur begränsar API:et anrop (Throttling/Rate Limit)?

Kolla alltid upp vad det är för begränsning som gäller för anropen till API:et. Många leverantörer av API:n tar betalt för olika rate limit så det är viktigt att kolla upp detta och ha med kostnaden i sina kalkyler. Det finns många olika varianter, allt från dagliga/veckovisa/månatliga anrop till specifik mängd data som kan skickas in. Om en integration lanseras till produktionsmiljö utan att ha tagit hänsyn till integrationens rate limit så kan produktionsmiljön börja ge problem.

5. Hur ser responstiden ut för API:et?

När du gör ett anrop till en tredjeparts API kommer det ta en viss tid innan du får svar från API:et. Detta skiljer sig väldigt stort inte bara mellan olika API:er utan även mellan olika endpoints inom samma API. Vilken filtrering du gör eller vilken data du skickar in kan också påverka responstiden. Om dina anrop från slutanvändare till tredjeparts API:et är synkrona behöver du ta extra hänsyn till responstiden för att inte förstöra användarupplevelsen. I största mån ska anrop till tredjeparts API:er göras asynkront för att minska risken för konstiga fel mot användaren. Ta också hänsyn till att testmiljö och produktionsmiljön kan ha olika responstider. Det är oftast bra att dubbelkolla detta och se om det går att minska mängden anrop som görs, t.ex. om datan i API:et inte uppdateras så ofta.

6. Hur ofta uppdateras API-datan?

Ta reda på hur ofta API-datan uppdateras och om möjligt ha en cache i er egen miljö för att minska responstiden till slutanvändaren. Detta förbättrar användarupplevelsen avsevärt och gör att ni inte är lika beroende av API:et, ni kan också ha en lägre nivå av rate limit vilket ofta sparar in pengar.

Ovanstående frågor är några exempel på vad vi på Will & Skill tar hänsyn till när vi jobbar datadrivet och värdeskapande tillsammans med våra kunder. Är du eller din organisation i startgroparna för att jobba mer datadrivet? Hör av dig till oss på Will & Skill idag och accelerera arbetet med att bli en organisation som rör sig fortare och med högre precision.