2008-09-15 6 views
16

Poszukuję lekkiej wersji REST dla rozwijanej aplikacji internetowej Java.REST w Javie

Przyjrzałem się RESTlet (www.restlet.org) i wtyczce REST dla Struts 2, ale nie podjąłem decyzji. Przechodzę w stronę RESTlet, ponieważ wydaje się, że jest lżejszy.

Czy ktoś zaimplementował warstwę RESTful bez frameworka lub z frameworkiem?

Jakieś problemy z wydajnością, które pojawiły się z powodu nowej warstwy internetowej?

Czy wprowadzenie REST spowodowało, że projekt nie spełniał trudnej do opanowania lub nieuzasadnionej złożoności? (Pewna złożoność jest zrozumiała, ale chodzi mi o to, że jest to zwykłe przesadzanie z twoimi projektami, aby dodać REST).

+0

Zobacz http://meta.stackexchange.com/questions/71068/a-few-possible-duplicate-questions- about-java-rest-what-should-we-do – ripper234

Odpowiedz

3

Cóż, używam Enunciate całkiem sporo. Używa prostych adnotacji, aby zapewnić punkty końcowe REST i/lub SOAP.

http://enunciate.codehaus.org

Plus, Ryan Heaton zawsze zapewniały wsparcie najwyższej klasy dla rzeczy też.

1

Pracuję nad interfejsem API REST dla gliffy.com, a my zakończyliśmy przetaczanie własne. Nie chcieliśmy wprowadzać Struts 2, Spring ani żadnej innej struktury. Spojrzałem na RESTLet i okazało się, że jest to bardzo mylące i skomplikowane.

Apache ma implementację specyfikacji JAX-RS, ale nie jest ona sfinalizowana i ma pewne dziwactwa. Wstępnie planujemy otworzyć nasze rozwiązanie, ale nie przez kilka miesięcy.

Jednak toczenie się jest łatwe. Specyfikacja Servlet daje ci wszystko, czego potrzebujesz, i możesz łatwo połączyć się z bazą danych poprzez Hibernate (zobacz http://www.naildrivin5.com/daveblog5000/?p=39, aby dowiedzieć się, jak skonfigurować WZP bez używania EJB3).

1

Znalazłem restaurację, która jest naprawdę elegancką architekturą. Pracuję w świecie .net, więc nie była to opcja dla mnie, ale udało mi się zbudować własną strukturę opartą na tych samych podstawowych zasadach. znalazłem przekształcenie naszej aplikacji WCF kontraktu opartego SOA spocząć na podstawie jednego znacznie uproszczona aplikacji

3

Wiesz, że to nowy JCP API dostępu do relaksującego Services, także:

JAX-RS JCP311 https://jsr311.dev.java.net/

wersja open source jest nazywany projektu Jersey

+0

Jersey [1] jest implementacją JSR-311. Jest dostępny do pobrania samodzielnie lub w ramach Glassfish [3], serwera aplikacji Open Source firmy Sun. Restlet [4] nadchodzące wydanie 2.0 również implementuje JSR-311. [1] https://jersey.dev.java.net/ [2] http://jsr311.dev.java.net/ [3] http://glassfish.dev.java.net/ [4] http://restlet.org/ –

+0

JSR-311 to ** nie ** dla dostępu do usług RESTful, ale raczej obsługujących/dostarczających/realizujących usługi RESTful. Aby uzyskać dostęp do usług RESTful, oznacza to, że działa on jako klient, jednak firma Jersey udostępnia bibliotekę klientów REST. –

20

Jestem wielkim fanem JAX-RS - Myślę, że zrobili świetną robotę z tej specyfikacji. Używam go w wielu projektach i praca z nim była przyjemnością.

JAX-RS umożliwia tworzenie zasobów REST przy użyciu obiektów POJO za pomocą prostych adnotacji dotyczących mapowań identyfikatorów URI, metod HTTP i negocjacji treści, które są zintegrowane z wtyczką zależności. Nie ma skomplikowanych API do nauki; potrzebne są tylko podstawowe koncepcje REST (identyfikatory URI, nagłówki/kody odpowiedzi i negocjacja treści). FWIW JAX-RS jest dość Railsowy z punktu widzenia kontrolera:

Istnieje wiele implementacji JAX-RS - patrz: this thread for a discussion.

Moja osobista rekomendacja to użycie Jersey jako największej, najbardziej aktywnej społeczności, która ma za sobą najlepsze cechy w czasie pisania (obsługa WADL, ukryte widoki, wiosenna integracja, miły interfejs API klienta REST); chociaż jeśli używasz JBoss/SEAM, możesz znaleźć RESTeasy integruje trochę lepiej.

8

Jestem wielką fanką firmy Restlet, ale zazwyczaj używam jej do implementacji aplikacji, których główną rolą jest , aby być usługą sieciową REST. Wygląda na to, że chcesz dodać RESTful API do istniejącej aplikacji. W takim przypadku podejście oparte na adnotacji JAX-RS (lub Enunciate) może lepiej pasować do projektu.

Co do Restletu, mogę powiedzieć, że byłem pod wielkim wrażeniem twórców i społeczności; są bardzo aktywni, zaangażowani, reagują i angażują się w stabilne, wydajne, niezawodne i skuteczne ramy. Moim jedynym ulubionym aspektem tego schematu jest to, że jest to podstawowa implementacja paradygmatu REST; w związku z tym nie występuje niedopasowanie impedancji między zewnętrznym interfejsem aplikacji Restart aplikacji a wewnętrzną implementacją. Bardzo podoba mi się również to, jak jest elastyczny - może działać w kontenerze/serwerze aplikacji Java, takim jak JBoss, Tomcat, Jetty itp., Lub w wersji samodzielnej z wbudowaną biblioteką serwera HTTP.