Wat is API (application programming interface)?

Het geheel van afspraken (namen van functies of bewerkingen, argumenten, returnwaarden, gegevensformaten enzovoort) waarmee andere programma's de functies van een stuk software aanroepen en gebruiken. Voorbeelden zijn API's van besturingssystemen, API's van bibliotheken en web-API's die gegevens uitwisselen via HTTP, zoals REST-API's. Aanroepers hoeven de implementatie niet te kennen, en de implementatie kan worden vervangen zolang de API gelijk blijft. De overeenkomstige afspraak op het niveau van de machinecode heet de ABI.

Japanse benaming: API

“API (application programming interface)” komt voor in 9 oefenvragen uit 4 onderwerpen, bijv. Basis van webtechnologie, Basis van cloud en containers, Cyberaanvallen en verdediging in de praktijk.

Vakgebied: Softwareontwikkeling en projectmanagement

Nu oefenen: vragen over API (application programming interface)

Cloudopslag wordt voor drie doeleinden gebruikt: (1) als schijf aan een virtuele machine koppelen, er een bestandssysteem op maken en de gegevensbestanden van een database erop plaatsen; (2) tegelijk vanaf meerdere servers mounten en als gedeelde map gebruiken; (3) een groot aantal afbeeldingen via een API over HTTP met een sleutel (naam) lezen en schrijven, en de capaciteit laten groeien zonder die vooraf vast te leggen. Welke combinatie van opslagsoorten is geschikt voor (1) tot (3)?

  1. A(1) objectopslag, (2) blokopslag, (3) bestandsopslag
  2. B(1) bestandsopslag, (2) objectopslag, (3) blokopslag
  3. C(1) blokopslag, (2) bestandsopslag, (3) objectopslag
Antwoord en toelichting tonen

Antwoord: C. (1) blokopslag, (2) bestandsopslag, (3) objectopslag

Blokopslag koppelt een gebied met een vaste grootte als virtuele schijf aan een virtuele machine; er wordt een bestandssysteem op gemaakt, en het is geschikt voor toepassingen zoals databases die veel kleine lees- en schrijfbewerkingen snel uitvoeren. Bestandsopslag levert een gedeeld bestandssysteem dat meerdere servers tegelijk kunnen mounten via NFS, SMB of iets vergelijkbaars. Objectopslag leest en schrijft gegevens als volledige objecten die met sleutels worden aangeduid, via een API over HTTP; de capaciteit kan vrijwel onbeperkt groeien, en het is geschikt voor afbeeldingen, back-ups en logs. Het is niet geschikt om een deel van een object te herschrijven; de gegevensbestanden van een database worden er dus niet in geplaatst.

Een web-API geeft gegevens in JSON-formaat terug als body van het antwoord. Welke header wordt in het algemeen aan het antwoord toegevoegd om het formaat van de body aan te geven?

  1. AAccept: application/json
  2. BContent-Type: text/html
  3. CContent-Type: application/json
Antwoord en toelichting tonen

Antwoord: C. Content-Type: application/json

Het soort gegevens in de body wordt aangegeven met de header Content-Type, met als waarde een mediatype (MIME-type) in de vorm „type/subtype”, zoals text/html of image/png. Het mediatype van JSON is application/json. JSON is een tekstformaat dat gegevens weergeeft met naam-waardeparen en arrays, zoals in {"id": 42, "tags": ["a", "b"]}; het is beknopter dan XML en gemakkelijk te verwerken vanuit JavaScript, en wordt daarom veel gebruikt in web-API's. De header Accept wordt in een verzoek gebruikt om de server te laten weten welke formaten de client wil ontvangen.

“API (application programming interface)” in de toelichting

Vragen met “API (application programming interface)” (9)

  1. Cloudopslag wordt voor drie doeleinden gebruikt: (1) als schijf aan een virtuele machine koppelen, er een bestandssysteem op maken en de gegevensbestanden van een database erop plaatsen; (2) tegelijk vanaf meerdere servers mounten en als gedeelde map gebruiken; (3) een groot aantal afbeeldingen via een API over HTTP met een sleutel (naam) lezen en schrijven, en de capaciteit laten groeien zonder die vooraf vast te leggen. Welke combinatie van opslagsoorten is geschikt voor (1) tot (3)?
  2. Een web-API geeft gegevens in JSON-formaat terug als body van het antwoord. Welke header wordt in het algemeen aan het antwoord toegevoegd om het formaat van de body aan te geven?
  3. Welk ontwerp van een web-API volgt de principes van REST?
  4. Een ontwikkelaar heeft per ongeluk een configuratiebestand met een API-sleutel voor een clouddienst naar een openbare Git-repository gecommit. Toen hij het merkte, committe hij meteen een wijziging die het bestand verwijderde. Wat is daarna de meest passende reactie?
  5. Welke omschrijving van de ABI (application binary interface) is juist?
  6. Het wachtwoord van een database wordt in een Kubernetes-Secret opgeslagen. Welke beschrijving van een Secret is juist?
  7. Welke beschrijving van een typische ondertekende JWT (JSON Web Token) is juist?
  8. Een app voor het afdrukken van foto's leest, met toestemming van de gebruiker, de foto's van die gebruiker uit de foto-opslagdienst van een ander bedrijf. Welke rol in OAuth 2.0 toont de gebruiker een scherm dat om toestemming vraagt en geeft, als de gebruiker instemt, een toegangstoken (access token) aan de app uit?
  9. Een toegangssleutel met beheerdersrechten die alle bewerkingen toestaat (langdurig geldige inloggegevens), was in een configuratiebestand gezet en aan een batchtaak in de cloud meegegeven. Welke herziening is het meest passend om de schade te beperken als deze sleutel uitlekt?

Verwante termen

HTTP (Hypertext Transfer Protocol) Objectopslag (object storage) JSON (JavaScript Object Notation) REST-API URL (uniform resource locator) HTTP-methode Git ABI (application binary interface) Aanroepconventie (calling convention) Pointer

Naar de woordenlijst