Digitalisering og API-revolusjonen gjør at stadig flere snakker om API. Men når stadig flere snakker om en ting øker sannsynligheten for misforståelser. Så når du snakker om API, snakker du om det fra en forretnings-dimensjon, arkitektur-dimensjon eller teknologi-dimensjon? Og hva er egentlig forskjellen på disse?
1. Application programming interface (API) is a set of routines,
protocols, and tools for building software applications. An API
expresses a software component in terms of its operations, inputs,
outputs, and underlying types.
-Wikipedia
API-diskusjonen: folk snakker om APIer, men snakker forbi hverandre!
API-er til fysiske devicer, klasser eller bibliotek
Instruksjoner til printer
Definisjon av operasjoner for å manipulere fysisk objekt, klasse eller pakke
Standarder
Bibliotek
Bibliotek som brukes i realisering av API eller på klientsiden, JAX-RS, JAX-WS, HTTP-bibliotek som OkHTTP, etc
Protokoller
Så bare innen det tekniske kan man snakke om mange forskjellige ting
hvordan man strukturer applikasjonene sine rundt tjenester som eksponeres og konsumeres
Ønsker å: unngå sterke knytninger, isolere endringer, høyere endringsevne, større valgfrihet i teknologi i de ulike tjenestene, etc, etc...
Strategi for versjonering, Discovery/tjenestekatalog, Orkestrering, Koreografi, Mikrotjenester
Ny måte å oppnå forretningsverdi på
hvordan virksomheter eller forretningsområder tilgjengeliggjør sine forretningsprosesser slik at disse kan benyttes av andre virksomheter eller interne forretningsområder i organisasjonen.
--------------
Gode eksempler på dette er feks frakt-APIet til Bring som gjør at nett-butikker kan tilby frakt-tjenester til sine forbrukere uten å realisere dette selv. Kanskje en "mashup" av forretningsområder, tjenester og prosesser