Dropwizard Tutorial-Hello World Example

Dropwizard jest open source Java framework do szybkiego rozwoju interfejsów API REST. Dropwizard jest rodzajem ekosystemu, który zawiera wszystkie zależności (takie jak Jersey, jackson czy jetty) zawarte w jednym pakiecie lub może być dodany jako oddzielny moduł. Jeśli nie używasz dropwizard, w końcu sam zbierzesz wszystkie zależności i często powoduje to problemy z ładowaniem klas z powodu niedopasowania wersji między różnymi bibliotekami java. Dropwizard rozwiązuje ten problem za Ciebie i łączy stabilne, Dojrzałe biblioteki w prosty, lekki pakiet, który pozwala skupić się na załatwianiu spraw. Nauczmy się używać dropwizard do tworzenia interfejsów API REST – krok po kroku.

Table of ContentsLibraries included inside dropwizardSetup dropwizard with mavenCreate REST Application ClassCreate REST Resource and APIsBuild Resource RepresentationsRequest ValidationVerify REST APIs
do uruchomienia przykładów podanych w tym kodzie potrzebna jest Java 8, która została opracowana przy użyciu dropwizard w wersji 1.0.0.

Biblioteki zawarte w dropwizard

po dodaniu dropwizard do projektu, otrzymasz następujące biblioteki dodane do ścieżki klasy.

  • koszulka-do budowania aplikacji internetowych.
  • Jetty – Dropwizard używa biblioteki http Jetty do osadzania serwera HTTP bezpośrednio w projekcie.
  • Jackson – dla konwersji obiektu na/z JSON. Pozwala eksportować modele domen bezpośrednio z adnotacjami JAXB.
  • Guava-wysoce zoptymalizowane niezmienne struktury danych w celu przyspieszenia rozwoju.
  • Logback i SLF4j – do wydajnego i elastycznego logowania.
  • Hibernate Validator – łatwy deklaratywny framework do sprawdzania danych wejściowych użytkownika i generowania pomocnych i przyjaznych dla i18n komunikatów o błędach.
  • Apache HTTPClient – zarówno do interakcji niskiego, jak i wysokiego poziomu z innymi usługami sieciowymi.
  • JDBI – najprostszy sposób użycia relacyjnej bazy danych w Javie.
  • Liquidbase – aby utrzymać schemat bazy danych w ryzach przez cały cykl rozwoju i Wydania.
  • FreeMarker-systemy szablonów.
  • Mustache-proste systemy szablonów dla bardziej wymagających aplikacji.
  • Joda Time – bardzo kompletna i zdrowa biblioteka do obsługi dat i godzin.

Konfiguracja dropwizard z mavenem

nasz projekt będzie oparty na archetypie maven-archetype-quickstart. Możesz utworzyć projekt za pomocą wiersza polecenia lub użyć eclipse do stworzenia prostego projektu maven java.

mvn archetype:generate -DgroupId=com.howtodoinjava.demo -DartifactId=DropWizardExample -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

wygenerowany projekt będzie miał również plik pom.xml. Dodaj tam zależność dropwizard.

spowoduje to pobranie wszystkich plików jar i dodanie ich do ścieżki klasy. Aby dodać obsługę kompilacji i pakietów do naszego projektu, użyjemy wtyczki maven-shade, która pozwoli nam spakować nasz projekt całkowicie, wraz z jego zależnościami, do jednego samodzielnego pliku JAR (Fat/Uber JAR), który może być dystrybuowany i uruchamiany w niezmienionej postaci.

kompletny pom.plik xml wygląda tak.

Utwórz klasę aplikacji REST

Klasa aplikacji jest punktem wejścia dla dowolnej aplikacji dropwizard. Musi rozszerzyć klasę io.dropwizard.Application i zaimplementować metody initialize(Bootstrap<Configuration>) i run(Configuration, Environment). Przygotowują środowisko runtime aplikacji.

aby wywołać metodę run, musisz mieć metodę public static void main(String args) {}, która zostanie wywołana przez polecenie java -jar podczas uruchamiania aplikacji jako plik jar.

aby wykonać plik JAR, dodajemy argument serwer do polecenia, które uruchamia wbudowany serwer HTTP (Jetty), aby uruchomić naszą usługę.

java -jar target\DropWizardExample.jar server

wbudowany Serwer Jetty Dropwizard będzie próbował domyślnie powiązać porty 8080 i 8081. Port 8080 jest używany przez serwer do obsługi przychodzących żądań HTTP do aplikacji, podczas gdy 8081 jest używany przez interfejs administracyjny Dropwizard.

zaimportowaliśmy również niezbędne klasy Logger i LoggerFactory w celu zbudowania instancji Loggera, której moglibyśmy użyć do naszych potrzeb logowania.

Utwórz zasoby REST i interfejsy API

teraz po dodaniu klasy bootstrap aplikacji możesz teraz dodać zasoby REST zawierające interfejsy API REST. W tym przykładzie stworzyłem i aplikację do zarządzania pracownikami – ma więc API do tworzenia/aktualizacji / usuwania rekordów pracowników. Ta klasa będzie odpowiedzialna za obsługę żądań HTTP i generowanie odpowiedzi JSON.

ponieważ mamy Jersey w naszym classpath, użyjemy go do zbudowania REST API.

aby naśladować DB, utworzyłem klasę EmployeeDB, która przechowuje rekordy pracowników i aktualizacje w pamięci.

twórz reprezentacje zasobów

reprezentacja jest tym, co przechowuje Dane i serializuje je do JSON. To model do spokojnego stosowania. Podczas korzystania z Jersey z Jacksonem, wszystko, czego potrzebujesz, aby zbudować reprezentację zasobów, to – proste POJO zgodne ze standardami java bean. Jackson konstruuje łańcuch JSON rekurencyjnie zgodnie z metodami gettera każdej klasy i ich zwracanym typem.

każda instancja typu java.util.List zostanie przekonwertowana na tablicę JSON.

jeśli jest to wymagane w niektórych przypadkach, możesz zapobiec temu, aby właściwość nie była częścią reprezentacji JSON, dodając do niej adnotację @JsonIgnore.

weryfikacja żądania

akceptując żądania PUT i POST, musisz zweryfikować zawartość podmiotu przesłanego przez użytkownika w treści żądania. Dropwizard używa do tego celu walidatora hibernate. Dodawanie walidacji wymaga następujących kroków.

zweryfikuj REST API

teraz, gdy utworzyliśmy i dodaliśmy walidacje dla REST API, przetestujmy to.

Zbuduj aplikację plik JAR uber

> mvn clean package

Uruchom aplikację na serwerze jetty

> java -jar target\DropWizardExample-0.0.1-SNAPSHOT.jar server

Uzyskaj dostęp do URIhttp://localhost:8080/employees

spowoduje to zwrócenie kolekcji pracowników i powiązanych nagłówków odpowiedzi.

Dropwizard – Pobierz przykład żądania– 1

Access URI http://localhost:8080/employees/1

spowoduje to zwrócenie rekordu pracownika o id 1.

Dropwizard – Pobierz przykład żądania– 2

wysłane HTTP PUT http://localhost:8080/employees / 1 z nieprawidłowymi danymi żądania

otrzymasz wiadomości walidacyjne.

Dropwizard-przykład walidacji

wysłane HTTP PUT http://localhost:8080/employees/1 z poprawnymi danymi

rekord pracownika zostanie pomyślnie zaktualizowany.

Dropwizard-PUT request Example

w ten sam sposób możesz przetestować inne API i scenariusze.

You might also like

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.