Читать книгу Spring Boot - Mark Heckler - Страница 41

Vertrauen ist gut, Kontrolle ist besser

Оглавление

Nachdem nun der gesamte Code vorhanden ist, wollen wir das API einmal testen.

Ich verwende für fast alle meine HTTP-basierten Aufgaben den Kommandozeilen-HTTP-Client HTTPie (https://httpie.org/). Manchmal benutze ich auch curl (https://curl.haxx.se/) oder Postman (https://www.postman.com/), aber ich denke, dass HTTPie ein ausgesprochen vielseitiger Client mit einer durchdachten Kommandozeilenschnittstelle und einer hervorragenden Funktionalität ist.

Wie in Abbildung 3-4 zu sehen ist, frage ich den coffees-Endpoint nach allen Kaffees ab, die momentan in unserer Liste sind. HTTPie verwendet standardmäßig eine GET-Anforderung und nimmt localhost an, falls kein Hostname angegeben wird, sodass unnötige Schreibarbeit vermieden wird. Wie erwartet, sehen wir alle vier Kaffees, die wir in unsere Liste gesetzt hatten.

Abbildung 3-4: Mit »GET« alle Kaffees holen

Als Nächstes kopiere ich das id-Feld für einen der Kaffees, die gerade aufgelistet wurden, und füge es in eine weitere GET-Anforderung ein. Abbildung 3-5 zeigt die korrekte Antwort.

Abbildung 3-5: Mit »GET« einen Kaffee holen

Die Ausführung einer POST-Anforderung mit HTTPie ist einfach: Verknüpfen Sie eine Textdatei, die eine JSON-Darstellung eines Coffee-Objekts enthält, in einer Pipeline mit id- und name-Feldern, und HTTPie geht davon aus, dass eine POST-Operation angezeigt wird. In Abbildung 3-6 sehen Sie den Befehl und sein erfolgreiches Ergebnis.

Abbildung 3-6: Mit »POST« einen neuen Kaffee auf die Liste setzen

Wie bereits erwähnt, sollte ein PUT-Befehl das Aktualisieren einer vorhandenen Ressource oder das Hinzufügen einer neuen Ressource erlauben, falls die angeforderte Ressource noch nicht existiert. In Abbildung 3-7 lege ich die id des Kaffees fest, den ich gerade hinzugefügt habe, und übergebe dem Befehl ein weiteres JSON-Objekt mit einem anderen Namen. Im Ergebnis hat nun der Kaffee mit der id »99999« den name »Caribou Coffee« statt wie zuvor »Kaldi’s Coffee«. Der Rückgabecode ist erwartungsgemäß 200 (OK).

Abbildung 3-7: Einen vorhandenen Kaffee mit »PUT« aktualisieren

In Abbildung 3-8 initiiere ich eine PUT-Anforderung auf die gleiche Weise, referenziere aber in dem URI eine id, die nicht existiert. Die Anwendung fügt sie ganz brav hinzu, wie das IETF-Dokument festgelegt hat, und liefert ganz richtig den HTTP-Status 201 (Created) zurück.

Abbildung 3-8: Mit »PUT« einen neuen Kaffee anlegen

Das Erzeugen einer DELETE-Anforderung mit HTTPie funktioniert so ähnlich wie das Erzeugen einer PUT-Anforderung: Sie müssen das HTTP-Verb angeben, und der URI der Ressource muss komplett sein. Abbildung 3-9 zeigt das Ergebnis: den HTTP-Statuscode 200 (OK), der anzeigt, dass die Ressource erfolgreich gelöscht wurde. Es wird außerdem kein Wert angezeigt, da die Ressource nun nicht mehr existiert.

Abbildung 3-9: Einen Kaffee mit »DELETE« löschen

Zum Schluss fragen wir noch einmal unsere komplette Kaffeeliste ab, um den erwarteten Endzustand zu bestätigen. Wie Abbildung 3-10 beweist, haben wir nun einen zusätzlichen Kaffee, der vorher noch nicht auf unserer Liste stand: Mötor Oil Coffee. Das war zu erwarten. Die API-Validierung ist erfolgreich.

Abbildung 3-10: »GET« holt alle Kaffees, die nun auf der Liste stehen.

Spring Boot

Подняться наверх