Sobes.tech
Junior

Wat is REST-georiënteerde architectuur (ROA)?

sobes.tech AI

Antwoord van AI

De REST-georiënteerde architectuur (Representational State Transfer) is een architecturale stijl voor gedistribueerde systemen, gebaseerd op een set principes die bepalen hoe resources worden geïdentificeerd en hoe de interactie tussen client en server plaatsvindt.

Belangrijkste principes van REST:

  1. Client-server (Client-Server): Scheiding van verantwoordelijkheden. De client zorgt voor de gebruikersinterface, de server voor het opslaan en verwerken van gegevens.
  2. Stateloos (Stateless): Elke aanvraag van de client aan de server moet alle benodigde informatie bevatten voor verwerking. De server bewaart geen staat van de client tussen aanvragen.
  3. Cacheerbaarheid: Clients en tussenliggende knooppunten kunnen serverantwoorden cachen om de prestaties en schaalbaarheid te verbeteren.
  4. Uniforme interface:
    • Identificatie van resources: Resources worden eenduidig geïdentificeerd via URL's.
    • Manipulatie van resources via representaties: De client kan resources manipuleren met behulp van de representatie (bijvoorbeeld JSON, XML).
    • Zelfbeschrijvende berichten: Elk bericht bevat voldoende informatie om te begrijpen hoe het te verwerken.
    • Hypermedia als de motor van de applicatiestatus (HATEOAS): De client interacteert met de applicatie uitsluitend via hyperlinks die in de serverantwoorden worden verstrekt.
  5. Gelaagde systeem: Het systeem kan worden georganiseerd in lagen (bijvoorbeeld, proxies, gateways), en elke component ziet alleen de volgende laag waarmee het interactie heeft.
  6. Code op aanvraag (Code-On-Demand - optioneel): De server kan tijdelijk de functionaliteit van de client uitbreiden door uitvoerbare code te verzenden (bijvoorbeeld JavaScript).

In QA omvat REST API-testen het controleren op naleving van deze principes, evenals:

  • Functionele testen (HTTP-methoden GET, POST, PUT, DELETE).
  • Belastbaarheidstesten.
  • Beveiligingstesten.
  • Compatibiliteitstesten (verschillende datavormen, clients).