Hva er API? – med et praktisk eksempel

API står for Application Programming Interface (programmeringsgrensesnitt), og er et sett med regler og protokoller som tillater forskjellige programvareapplikasjoner å kommunisere med hverandre.

Tenk deg at du er på en restaurant. Når du er klar til å bestille mat, gir du bestillingen til servitøren. Servitøren går til kjøkkenet, der maten blir laget, og deretter bringer de den tilbake til bordet ditt. Du får akkurat det du ba om, uten å ha behov for å vite hvordan maten blir laget.

Det er API er som servitøren i dette scenariet. Det er et mellomledd som gjør at to forskjellige systemer kan kommunisere med hverandre. I stedet for at én applikasjon må vite hvordan en annen applikasjon fungerer, kan den sende en «forespørsel» via API-et, og få tilbake akkurat det den trenger (f.eks. data eller funksjonalitet).

Her er et enkelt eksempel:

  1. Du (bruker en app): Ønsker å se værmeldingen for i morgen.
  2. Appen (klient): Sender en forespørsel til vær-tjenesten via API-et.
  3. Vær-tjenesten (server): Henter værdataene fra et eksternt system (som en meteorologisk database).
  4. API-et: Leverer de nødvendige dataene tilbake til appen, som viser deg værmeldingen på skjermen.
Tenk på en bie som et API: Den samler nektar fra flere blomster (systemer) og bringer det tilbake til bikuben (klienten), hvor det kan brukes videre. På samme måte henter et API data fra en kilde og leverer det til en annen applikasjon. Biene forenkler kommunikasjonen mellom blomster og bikube, akkurat som et API gjør det mellom to systemer, slik at de kan utveksle informasjon uten å vite hvordan den andre fungerer bak kulissene.
Tenk på en bie som et API: Den samler nektar fra flere blomster (systemer) og bringer det tilbake til bikuben (klienten), hvor det kan brukes videre. På samme måte henter et API data fra en kilde og leverer det til en annen applikasjon. Biene forenkler kommunikasjonen mellom blomster og bikube, akkurat som et API gjør det mellom to systemer, slik at de kan utveksle informasjon uten å vite hvordan den andre fungerer bak kulissene.

Så, API-er er rett og slett måten applikasjoner og nettsider «prater» med hverandre på, uten at du trenger å forstå alt det tekniske som skjer bak kulissene. API-er lar én app be om informasjon eller funksjonalitet fra en annen, og få tilbake noe nyttig i en strukturert form.

Når tjenester som Vipps eller Bank-ID brukes til innlogging, er det API-er som gjør magien mulig. Disse API-ene kobler nettsiden eller appen du skal logge inn på, sammen med identitetstjenesten – i dette tilfellet Vipps eller Bank-ID. For deg betyr det mindre frustrasjon med glemte passord og brukernavn, og samtidig høyere sikkerhet. Alt du trenger er én pålitelig løsning som allerede er godt sikret, og vips (pun intended!) – du får enkel tilgang til alt fra nettbutikker til offentlige tjenester.

Det er et glimrende eksempel på hvordan API-er er med å gjøre hverdagen enklere og mer effektiv, samtidig som de ivaretar sikkerheten. Færre passord, mindre stress og mer tid til ting som faktisk betyr noe! 

Neste gang du skal velge forretningssystemer, ta et dypdykk i API-et som tilbys, slik at du kan koble systemet til eksisterende verktøy og tjenester. Husk også å tenke på fremtidige behov. Jeg har selv sett et lite selskap som nesten gikk konkurs etter å ha brukt millioner på utvikling av et system som ikke var skalerbart, og som måtte skrotes når bedriften vokste ut av det.

Eksempel på bruk av API for å hente værdata

Laster værdata…

Dataene hentes fra OpenWeather, og jeg laget dette API-eksemplet som en plugin til WordPress med utgangspunkt i denne enkle koden:

function weather_shortcode() {
    return '<div id="weather-widget-container">
                <label for="cityInput" class="weather-label">Skriv inn sted:</label>
                <input type="text" id="cityInput" placeholder="For eksempel Oslo" class="weather-input" />
                <button id="getWeather" class="weather-button">Hent vær</button>
            </div>
            <div id="weather" class="weather-data">Laster værdata...</div>
            <script>
                const apiKey = "Min API-nøkkel fra OpenWeather";

                document.getElementById("getWeather").addEventListener("click", function() {
                    const city = document.getElementById("cityInput").value;
                    if (!city) {
                        document.getElementById("weather").innerHTML = "Skriv inn sted:";
                        return;
                    }

                    const url = `https://api.openweathermap.org/data/2.5/weather?q=${city}&units=metric&appid=${apiKey}&lang=no`;

                    fetch(url)
                        .then(response => {
                            if (!response.ok) {
                                throw new Error("Kunne ikke hente værdata for dette stedet.");
                            }
                            return response.json();
                        })
                        .then(data => {
                            const temperature = data.main.temp;
                            const weather = data.weather[0].description;
                            const windSpeed = data.wind.speed;

                            document.getElementById("weather").innerHTML = `
                                <p>By: ${city}</p>
                                <p>Temperatur: ${temperature} °C</p>
                                <p>Vær: ${weather}</p>
                                <p>Vind: ${windSpeed} m/s</p>
                            `;
                        })
                        .catch(error => {
                            document.getElementById("weather").innerHTML = error.message;
                        });
                });
            </script>';
}
add_shortcode('custom_weather', 'weather_shortcode');

Koden bruker PHP for å lage et enkelt grensesnitt med et input-felt for byen og en knapp for å hente værdata. JavaScript håndterer API-forespørselen, viser temperatur, værbeskrivelse og vindhastighet.

Hvis noe går galt, vises en feilmelding. Dataene vises i et strukturert format, og vær-widgeten kan enkelt legges til på WordPress-sider eller innlegg ved å bruke kortkoden «custom_weather".

Jeg har senere lagt til funksjon for å vise vær-ikon og en backend i WordPress admin for å sette API-nøkkel, standardsted og tilpasse hvilke variabler som vises.

Ta gjerne kontakt dersom du ønsker en kopi av denne plugin til din wordpress installasjon.