Dobry sposób na ODate dla MySQL czy Postgres

Jeżeli kiedyś zastanawiałeś się w jaki sposób łatwo można wystawić restowy serwis oData dla MySQL czy Postgres, to ten wpis jest zdecydowanie dla Ciebie. Jakiś czas temu w ramach realizacji pewnego projektu stanęliśmy bowiem z całym zespołem przed wyzwaniem stworzenia serwisu, który będzie odpowiedzialny za obsługę aplikacji stworzonej w UI5. Pytanie jakie postawiliśmy sobie na początku zabrzmiało więc: “Jak to zrobić ?”

Otóż istnieje przynajmniej kilka możliwości realizacji takiego rozwiązania, te które przychodziły nam na myśl to:

  • PHP + biblioteka oDaty + baza danych + serwer http,
  • Postgrest
  • Java + JPA + biblioteka ODaty + serwer np. Tomcat

Rozwój projektu

Pierwsze rozwiązanie wydawało się być dość nieoptymalne, nie mieliśmy też doświadczenia z implementacją ewentualnego mapowania w PHP. Postgres zaś znów wydawał się dość młodym projektem, i też zdecydowanie brakowało nam umiejętności. Wybór padł więc na dość elementarne rozwiązanie – Java + JPA + Olingo + Tomcat.

Jak to działa ?

Na początku zaczęliśmy od stworzenia modelu klas naszej aplikacji. Następnie przełożyliśmy to na Javę, i dodaliśmy obsługę hibernate (min. plik hibernate.cfg, zależności, odpowiednie adnotacje). Na chwilę obecną używamy tej technologi w celu dodawania do bazy testowych obiektów. Następnie stanęliśmy przed wyborem dostawcy obsługi Odaty. Na początku była to odata4j, z czasem jednak ze względu na niezrozumiałe do końca działanie, podjęta została decyzja o migracji na olingo.

O Olingo słów kilka

Olingo może służyć zarówno jako konsument, jak i jako dostawca ODaty. W naszym przypadku wykorzystaliśmy oczywiście tą drugą możliwość. Jeżeli chodzi o podstawową konfigurację to jest ona bardzo prosta, wystarczy podstawowa klasa factory w której zapisujemy informację o nazwie entity którą chcemy uruchomić (korzysta ona z pliku persistence.xml) i gotowe. Po uruchomieniu na tomcacie wszystko śmigało od razu jak należy.

Rozważam powstanie małego poradnika o tym jak samemu stworzyć i wystawić od podstaw taki serwis, więc jeżeli jesteś zainteresowany tym tematem to zachęcam do obserwowania tego bloga.

UPDATE

Powstał poradnik po angielsku dotyczący takiego rozwiązania. Linki zamieszczam poniżej:

Część 1

Część 2

Część 3

Sprawdź też

Hana jako sourcesystem

Witajcie w kolejnym tygodniu zmagań z DSP 2017. Otóż udało mi się w tym tygodniu …