API står for Application Programming Interface og bruges som en måde at kommunikere mellem forskellige applikationer og systemer. Det fungerer som en bro eller mellemled, der muliggør udveksling af data og funktionalitet mellem forskellige softwareprogrammer. API'en definerer de nødvendige mekanismer for kommunikation og interaktion mellem forskellige applikationer.
API'er er meget almindelige i dagens teknologiske verden, og de bruges på tværs af alle typer applikationer og systemer. De gør det muligt for udviklere at integrere forskellige funktioner og tjenester i deres egne applikationer uden at skulle bygge alt fra bunden. Dette fører til en mere effektiv og hurtigere udviklingsproces, da udviklerne kan fokusere på deres egen kernefunktionalitet, mens de stadig kan tilbyde en bred vifte af funktioner gennem brugen af API'er.
API'er kan også bruges til at give adgang til data og tjenester på tværs af forskellige platforme og enheder, hvilket gør det muligt for tredjepartsudviklere at oprette applikationer og tjenester, der kan integrere eller udvide funktionaliteten af eksisterende applikationer. Dette giver mulighed for en mere fleksibel og skalerbar tilgang til softwareudvikling, da det er nemmere at tilpasse sig nye teknologier og platforme ved hjælp af API'er.
I alt kan API'er have en stor indvirkning på softwareudvikling og integration af forskellige systemer. De gør det muligt for udviklere at opbygge mere effektive og fleksible applikationer, mens de stadig kan tage fordel af eksisterende funktioner og tjenester.
Vi arbejder oftest med RESTful API’er da de er standarten for meget data og umildbart de nemmeste at starte på. Der findes dog mange andre typer som vi kan udforske her
Top 6 Most Popular API Architecture Styles
Senere på forløbende kommer i til at støde på WebSocket og WebHooks, som har noget ekstra funktionalitet over RESTful.
Postman laver årligt et state-of spørgeskema og samler data på API teknologier. Man kan se resultater fra 2023 her - postman.com/state-of-api
Kilde | https://www.postman.com/state-of-api/api-technologies/#architectural-style-soap-slips
Vi ser at RESTful er klar mest populært med 86%, herefter WebHooks et stykke eftermed 36%, GraphQL og SOAP følger tæt efter. Vi skal huske at popularitet ikke er alt, hver API teknologi har deres use-case og et er vigtigt at vi kan vælge den rigtige ud fra hvad vi skal bruge den til! WebSocket og gRPC er også relativt højt på listen, specielt gRPC stiger år til år, men der mangler stadig en del browser support, før det bliver aktuelt!
SOAP (Simple Object Access Protocol) er en protokol og en arkitektur til at udveksle struktureret information mellem forskellige applikationer via internettet. Den blev udviklet tidligere end RESTful og har nogle forskellige egenskaber, der adskiller den fra RESTful API'er.
SOAP er baseret på XML (eXtensible Markup Language) og bruger WSDL (Web Services Description Language) til at definere dets tjenester og beskeder. Det understøtter forskellige transportprotokoller som HTTP, HTTPS, SMTP og meget mere. SOAP er mere kompleks og har en omfattende specifikation sammenlignet med RESTful API'er.
En af årsagerne til, at SOAP ofte betragtes som tungere end RESTful, er på grund af dens kompleksitet og større datatransport. SOAP-beskeder er normalt større på grund af XML-formatet og indeholder mere overheadinformation, såsom header og metadata. Dette kan føre til større båndbredde- og ressourceforbrug sammenlignet med RESTful API'er, der normalt bruger lettere formater som JSON.
Derudover er SOAP mere bundet til XML og WSDL, hvilket kan gøre det mere vanskeligt at implementere og vedligeholde. Det kræver normalt mere kodning og konfiguration for at oprette og bruge SOAP-tjenester. RESTful API'er, derimod, er mere fleksible og lettere at forstå og implementere, da de er baseret på velkendte HTTP-protokoller og bruger lettere formater som JSON.
En anden faktor, der påvirker populariteten af SOAP, er markedstendenser og brugerbehov. I dagens teknologiske landskab er RESTful API'er mere udbredte og populære. RESTful API'er er mere i overensstemmelse med de principper, der anvendes i moderne webudvikling og er mere fleksible til at imødekomme forskellige behov og krav.
I modsætning til SOAP understøtter RESTful API'er også forskellige former for autentifikation og autorisering, såsom tokenbaseret autentifikation og OAuth. Dette gør det mere egnet til at opbygge sikrede og autentificerede API'er.