# Frage zu Jersey + Hibernate



## saw (29. Apr 2014)

Hi, ich suche zZ möglichst viele Infos zum Thema "Was muss ich beachten wenn ich eine solide REST api programmieren will?". Mein Data Model wird über JPA und Hibernate gehalten und ich möchte nun meine Objekte im JSON Format zur Verfügung stellen. 

Meine Frage(n) beziehen sich nun auf den Übergang von einem durch Hibernate gemanagten POJO zur JSON Representation. Ich kann mir ja mit JAX-RS POJOs in XML oder JSON konvertieren lassen und umgekehrt. In meinerm Data Model habe ich ja Referenzen zu anderen Klassen / Daten, also ist meine erste Frage: Kann ich das diese Verschachtelung von Referenzen / Instanzen überhaupt vernünftig in JSON abbilden? Falls ja: das hebelt vermutlich lazy loading von Hibernate aus oder?

Macht es Sinn einer Art "View" Objekt einzuführen, sodass man ein Objekt erstmal ohne Referenzen / Collections etc bekommt und dann einen weiteren REST-Aufruf benutzt um irgendwelche Unterobjekte abzuholen?

Grüße
saw


----------



## Stefan Isele (6. Mai 2014)

Hallo, 
- ja Referenzen kann man abbilden, diese werden als Link serialisiert
- muß nicht sein. Spring REST serialisiert z.B. für mehrwertige Attribute immer einen Link, wenn man dem folgt, kann es sein, dass der Link ins leere führt. Unschön, aber so vermeidet man das das Lazy-Loading ausgehebelt wird.

Das mit den View-Objekten entsprciht so ungefähr dem obigen Ansatz.

Ich kann aber echt nicht empfehlen, dasd von Hand zu machen. Mit Spring-REST kann man mit drei Zeilen Code eine REST-API für eine JPA-Entität erzeugen !

Ich nutze das für mein Open-Source Framework appdriver, und es klappt hervoragend.
Die Website des Projektes ist appdriver.com
Eine Live-Demo läuft unter demo.appdriver.com
Die REST-API finden Sie unter http://appdriver.prefabware.cloudbees.net/api/
Da können Sie mal sehen wie das aussieht.

unter appdriver documents finden Sie das Turtorial 
'Create web application ' das zeigt, wie man mit dem Open-Source Framework appdriver eine Web-Anwendungen mit JPA, Spring REST, Maven, JQuery, Ajax, Bootstrap in wenigen Minuten aufsetzen, ausführen und dann schrittweise erweitern kann.

Viel Erfolg !


----------

