Читать книгу Spring Boot - Mark Heckler - Страница 38
PUT-ting
ОглавлениеGanz allgemein ausgedrückt werden PUT-Anforderungen verwendet, um vorhandene Ressourcen mit bekannten URIs zu aktualisieren.
Laut dem IETF-Dokument Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content (https://tools.ietf.org/html/rfc7231) sollen PUT-Anfragen die angegebene Ressource aktualisieren, falls sie vorhanden ist; sollte die Ressource noch nicht existieren, dann soll sie angelegt werden. |
Der folgende Code arbeitet entsprechend der Spezifikation: Er sucht nach dem Kaffee mit dem angegebenen Identifikator und aktualisiert ihn, falls er ihn finden kann. Ist kein solcher Kaffee in der Liste enthalten, wird er erzeugt:
@PutMapping("/coffees/{id}")
Coffee putCoffee(@PathVariable String id, @RequestBody Coffee coffee) {
int coffeeIndex = -1;
for (Coffee c: coffees) {
if (c.getId().equals(id)) {
coffeeIndex = coffees.indexOf(c);
coffees.set(coffeeIndex, coffee);
}
}
return (coffeeIndex == -1) ? postCoffee(coffee) : coffee;
}