Sobes.tech
Junior

Wat is een REST API?

sobes.tech AI

Antwoord van AI

REST API is een architecturale stijl voor het bouwen van gedistribueerde systemen. De belangrijkste principes van REST:

  • Stateloosheid: Elke aanvraag van de client aan de server moet alle benodigde informatie bevatten om te verwerken. De server bewaart geen toestand van de client tussen aanvragen.
  • Client-Server: Duidelijke scheiding van verantwoordelijkheden tussen client en server. De client stuurt aanvragen, de server verwerkt ze.
  • Cacheerbaarheid: De server moet aangeven of antwoorden door de client of tussenliggende partijen kunnen worden gecachet.
  • Gelaagde systeem: De client hoeft niet noodzakelijk direct met de eindserver te communiceren; dit kan via tussenlagen (proxy, load balancers).
  • Uniforme interface: Eén en gestandaardiseerde manier van interactie tussen client en server. Dit principe omvat:
    • Identificatie van bronnen: Bronnen (gegevens) worden geïdentificeerd via URL's.
    • Manipulatie van bronnen via representaties: De client interageert met bronnen door hun representaties (bijvoorbeeld JSON, XML) te verkrijgen en nieuwe representaties te sturen voor wijziging.
    • Zelfbeschrijvende berichten: Elk bericht bevat voldoende informatie om te begrijpen hoe het te verwerken.
    • HATEOAS (Hypertext As The Engine Of Application State): Bronnen moeten links (hyperlinks) bevatten naar gerelateerde bronnen en beschikbare acties.

REST API gebruikt meestal standaard HTTP-methoden voor het uitvoeren van operaties op bronnen:

  • GET: Het verkrijgen van een bron of collectie bronnen.
  • POST: Het creëren van een nieuwe bron.
  • PUT: Volledige update van een bestaande bron.
  • PATCH: Gedeeltelijke update van een bestaande bron.
  • DELETE: Het verwijderen van een bron.

Voorbeeld van een JSON-representatie van een bron:

{
  "id": 1, // Identificatie
  "name": "Resource Name", // Naam van de bron
  "description": "Detailed description of the resource." // Beschrijving van de bron
}

Testen van REST API omvat het controleren van:

  • Functionaliteit (correctheid van de antwoorden op verzoeken).
  • Foutafhandeling.
  • Prestaties.
  • Beveiliging.
  • Conformiteit aan documentatie.