Junior
Vertel ons over de PUT-methode in de REST API.
sobes.tech AI
Antwoord van AI
De PUT-methode wordt gebruikt om een bron te maken of bij te werken op de opgegeven URI.
Belangrijkste kenmerken:
- Idempotentie: Het herhaald uitvoeren van dezelfde PUT-aanvraag met dezelfde body leidt tot dezelfde staat van de bron op de server (hoewel de reactie van de server kan variëren).
- Volledige vervanging: De PUT-aanvraag stuurt een volledige representatie van de bron, die de bestaande vervangt.
- Aanmaak of bijwerking: Als de bron op de opgegeven URI niet bestaat, wordt deze gemaakt. Als deze bestaat, wordt deze bijgewerkt. Het ontbreken van de bron bij een succesvolle PUT-aanvraag leidt meestal tot creatie, wat gewoonlijk status 201 Created retourneert. Het bijwerken van een bestaande bron geeft meestal 200 OK of 204 No Content (als er geen lichaam is).
Typische gebruiksscenario's:
- Volledige bijwerking van het gebruikersprofiel.
- Aanmaken van een bron als de client deze URI bepaalt.
Voorbeeld PUT-aanvraag:
PUT /users/123 HTTP/1.1
Host: api.example.com
Content-Type: application/json
{
"id": 123,
"name": "Nieuwe Naam",
"email": "new.email@example.com"
}
De server ontvangt deze aanvraag en maakt of vervangt de gebruiker met id=123 volledig met de gegevens uit de body.
PUT verschilt van POST in dat:
- PUT wordt gebruikt om een bron op een bekende URI bij te werken of te maken, die door de client wordt bepaald. POST wordt gebruikt om een bron te maken, waarbij de server de URI van de nieuwe bron bepaalt, of voor andere acties die niet onder andere HTTP-methoden vallen.
- PUT is idempotent, POST niet. Herhaalde POST-aanvragen met dezelfde body kunnen meerdere identieke bronnen creëren of verschillende bijwerkingen veroorzaken.
Vergelijkingstabel PUT vs. POST:
| Kenmerk | PUT | POST |
|---|---|---|
| Doel | Bron maken of bijwerken | Bron maken, gegevens verzenden |
| Idempotentie | Ja | Nee |
| URI-definitie | Door de client | Door de server |
| Impact op bron | Vervangt of maakt volledig | Voegt meestal toe of voert een actie uit |