Zaczynam nowy projekt Java, który będzie wymagał RESTful API. Będzie to aplikacja biznesowa SaaS obsługująca klientów mobilnych.
Opracowałem jeden projekt z Javą EE 6, ale nie znam się zbytnio na ekosystemie, ponieważ większość mojego doświadczenia dotyczy platformy Microsoft.
Jaki byłby rozsądny wybór dla implementacji JAX-RS dla nowego projektu, takiego jak opisany?
Sądząc z listy Wikipedii , głównymi pretendentami wydają się Jersey, Apache CXF, RESTeasy i Restlet. Jednak porównanie implementacji JAX-RS cytowanych na Wikipedii pochodzi z 2008 roku.
Moje pierwsze wrażenia z ich stron głównych to:
- CXF ma być bardzo kompleksowym rozwiązaniem (przypomina mi WCF w przestrzeni Microsoft), co sprawia, że uważam, że zrozumienie, konfiguracja i debugowanie może być bardziej skomplikowane niż to, czego potrzebuję;
- Jersey jest implementacją referencyjną i może być dobrym wyborem, ale jest dziedzictwem firmy Sun i nie jestem pewien, jak Oracle ją traktuje (strona ogłoszeń nie działa i ostatnie powiadomienie o zatwierdzeniu pochodzi sprzed 4 miesięcy);
- RESTeasy pochodzi od JBossa i prawdopodobnie jest to solidna opcja, chociaż nie jestem pewien co do krzywej uczenia się;
- Restlet wydaje się być popularny, ale ma wiele historii, nie jestem pewien, jak aktualny jest w świecie Java EE 6 lub czy niesie za sobą ciężkie nastawienie J2EE (jak wiele konfiguracji XML).
Jakie byłyby zalety każdej z tych alternatyw? Co z krzywą uczenia się? Wsparcie funkcji? Oprzyrządowanie (np. NetBeans lub wizard Eclipse)? Co z łatwością debugowania, a także wdrażania? Czy któryś z tych projektów jest bardziej aktualny niż inne? Jak stabilne są?
Odpowiedzi:
Uwielbiam Dropwizard za ogólne rozwiązanie
Dropwizard opowiada się za lekkim rozwiązaniem, które oferuje znacznie szybsze cykle programowania. Zasadniczo zapewnia klej do następujących dobrze znanych ram:
Połączenie powyższego, w połączeniu z solidnym podejściem do testów funkcjonalnych, daje kompletne rozwiązanie do szybkiego uruchomienia usługi.
Tak? I pytanie JAX-RS, które zadałem ...
Zauważysz, że wybrali Jersey, referencyjną implementację JAX-RS. Jako RESTEasy, pomyślałem, że to będzie problem, ale krzywa uczenia się była zerowa. Te dwa są w dużej mierze wymienne. Powiedziałbym jednak, że klient Jersey oferuje płynny interfejs do konstruowania testów. Przykładem może być ...
źródło
Możesz rzucić okiem na to pytanie , które omawia niektóre doświadczenia innych programistów.
Mogę osobiście polecić Jersey. Jest bardzo łatwy w użyciu i ma dobrą opinię, ponieważ jest implementacją referencyjną. Oznacza to również, że będzie on utrzymywany i obsługiwany przez następną chwilę.
źródło