Middle+
Vertel over de regel van de uniforme interface (Uniform Interface).
sobes.tech AI
Antwoord van AI
De regel van de Uniforme Interface is een van de zes architecturale beperkingen van REST. Het schrijft voor dat het systeem een uniforme, gestandaardiseerde aanpak gebruikt voor de interactie tussen client en server. Dit vereenvoudigt en scheidt de architectuur, verbetert de zichtbaarheid en vergemakkelijkt de onafhankelijke ontwikkeling van client en server.
Componenten van de Uniforme Interface:
- Identificatie van resources: Resources moeten uniek identificeerbaar zijn (meestal via URI). Dit vormt de basis voor gestandaardiseerde interactie. Voorbeeld:
/gebruikers/123,/producten/ABC. - Manipulatie van resources via hun representaties: De client ontvangt een representatie van de resource (bijvoorbeeld in JSON of XML), die voldoende informatie bevat om de resource op de server te wijzigen of te verwijderen. De status van de resource op de server kan worden gewijzigd door de gewijzigde representatie te sturen.
- Zelfbeschrijvende berichten: Elk bericht (verzoek of antwoord) moet voldoende informatie bevatten om volledig begrepen te worden zonder de context van de serverstatus of andere verzoeken. Dit omvat metadata: content-type, cache-informatie, links naar andere resources, enz.
HTTP/1.1 200 OK Content-Type: application/json Cache-Control: max-age=3600 { "name": "Voorbeeld Gebruiker", "links": [ { "rel": "self", "href": "/gebruikers/123" } ] } - Hypermedia als de Motor van Applicatiestatus (HATEOAS): Hiermee kan de client dynamisch tussen resources navigeren, gebaseerd op hypermedialinks die door de server in de reactie worden verstrekt. De client hoeft niet alle URI’s van tevoren te kennen, alleen het toegangspunt. De server leidt de client door beschikbare acties en resources.
{ "orderId": "A123", "status": "verwerking", "links": [ { "rel": "annuleren", "href": "/bestellingen/A123/annuleren", "method": "POST" }, { "rel": "self", "href": "/bestellingen/A123" } ] }
In plaats van hard gecodeerde paden, ontdekt de client de mogelijkheid om een bestelling te annuleren op basis van de aanwezigheid en inhoud van de link met rel: "annuleren".
Een uniforme interface is cruciaal voor de schaalbaarheid en evolutie van RESTful systemen, omdat het de koppeling tussen componenten vermindert.