First page Back Continue Last page Overview Text

Notes:


Die Methode createMovie() zeigt anhand einer PUT-Anfrage (PUT = Neuen Datensatz anlegen), wie der Webservice JSON-Daten empfangen und als Antwort zurückliefern kann. Hier ist nur die Annotation @Consumes neu, die besagt, dass die Methode immer dann aufzurufen ist, wenn der Client einen JSON-String an den Server gesendet hat.

Anstelle von @Consumes(MediaType.APPLICATION_JSON) hätte man auch hier @Consumes("application/json") schreiben können. Und auch hier wäre es erlaubt, mehrere Methoden anzubieten, die mit unterschiedlichen Datenformaten umgehen können.

Innerhalb der Methode sehen Sie, dass die JSON-Daten des Clients als String an die Methode übergeben werden und die Antwort des Servers ebenfalls als String zurückgegeben wird. Wie bereits gesagt, gibt es noch weitere Möglichkeiten. Diese hier ist aber einerseits noch relativ einfach und hat den Vorteil, dass sie stabil funktioniert. (Wollten Sie anstelle im Fehlerfall z.B. den HTTP Response Code 402 zurückliefern, müsste die Methode anstelle eines Strings ein spezielles Response-Objekt zurückliefern. Das lassen wir hier aber mal außen vor.)

Zum Parsen der JSON-Anfrage sowie zur Erzeugung der JSON-Antwort wird hier die GSON-Bibliothekt von Google verwendet. Denn Stand 2017 befindet sich die offizielle Java API für JSON noch in der Entwicklung und wird noch nicht von allen Applikationsservern unterstützt.

Folgende zwei Zeilen nehmen die empfangenen JSON-Daten und wandeln sie in ein Javaobjekt, das passend zu den JSON-Daten definiert sein muss, um:

Gson gson = new GsonBuilder().create();

Movie newMovie = gson.fromJson(json, Movie.class);

Und folgende Zeile nimmt ein Javaobjekt und erzeugt daraus einen JSON-String, der an den Client zurückgeschickt wird:

return gson.toJson(newMovie);