2016-05-06 13 views
0

ich ein dropwizard Projekt studiere, die in ihrer Ansichten Paket enthält eine Reihe von Klassen wie folgt aus:Was machen diese Ansichten?

package api.views; 

public class FooView { 

    public static class FindAll { 
    } 

    public static class Item { 
    } 

} 

der einzige Ort, wo ich solche Ansichten bemerkt verwendet werden soll, in den Ressourcenklassen, in ein Art und Weise ähnlich der folgenden:

@GET 
@Timed 
@UnitOfWork 
@JsonView(FooView.FindAll.class) 
public Response getAll() { 
    //connects to the DB via hibernate 
    //returns a Response containing a JSON list of Foos in the DB 
} 

ich verstehe nicht, die Rolle solcher Ansichten, wie sie leer statische Klassen sind und wenn sie das zurückgegebene JSON ändern können.

Antwort

0

@JsonView Annotation ist Teil von Jackson Features. Ich habe diese Funktion nicht verwendet, aber die Dokumentation besagt folgendes:

"Ansichten" bedeutet in diesem Kontext die Fähigkeit, Teilmengen von logischen Eigenschaften (Dinge, die über Getter oder Felder zugegriffen werden) zu serialisieren. Ansichten werden statisch definiert (mithilfe von Anmerkungen), die für die Serialisierung zu verwendende Ansicht wird jedoch dynamisch (per Serialisierung) ausgewählt.

Quelle: http://wiki.fasterxml.com/JacksonJsonViews Für die @JsonView Beschreibung check "Ansichten mit JAX-RS" fast am Ende der Webseite.