Dropwizard Tutorial – Hello World Example

Dropwizard är en öppen källkod Java ramverk för den snabba utvecklingen av REST API. Dropwizard är typ av ekosystem som innehåller alla beroenden (som Jersey, jackson eller jetty) buntade i ett enda paket eller kan läggas till som separat modul. Om du inte använder dropwizard kommer du att samla in alla beroenden själv och det resulterar ofta i problem med klassbelastning på grund av versionsmatchning mellan olika java-bibliotek. Dropwizard lösa detta problem för dig, och drar ihop stabila, mogna bibliotek i en enkel, lätt paket som låter dig fokusera på att få saker gjorda. Låt oss lära oss att använda dropwizard för att bygga REST API: er – steg för steg.

Table of ContentsLibraries included inside dropwizardSetup dropwizard with mavenCreate REST Application ClassCreate REST Resource and APIsBuild Resource RepresentationsRequest ValidationVerify REST APIs
du behöver Java 8 för att köra exemplen i den här koden som utvecklas med dropwizard version 1.0.0.

bibliotek ingår i dropwizard

när du inkluderar dropwizard i ditt projekt får du följande bibliotek som läggs till i din classpath.

  • Jersey – för att bygga vilsamma webbapplikationer.
  • Jetty-Dropwizard använder Jetty HTTP-biblioteket för att bädda in en HTTP-server direkt i ditt projekt.
  • Jackson – för objekt till / från JSON konvertering. Det gör det möjligt att exportera dina domänmodeller direkt med JAXB-anteckningar.
  • Guava-mycket optimerade oföränderliga datastrukturer för att påskynda utvecklingen.
  • Logback och SLF4j-för utförande och flexibel loggning.
  • Hibernate Validator – ett enkelt deklarativt ramverk för att validera användarinmatning och generera användbara och i18n-vänliga felmeddelanden.
  • Apache HTTPClient-för både låg-och hög nivå interaktion med andra webbtjänster.
  • JDBI-det enklaste sättet att använda en relationsdatabas med Java.
  • Liquidbase-för att hålla ditt databasschema i kontroll under hela din utvecklings-och släppcykel.
  • FreeMarker-mallsystem.
  • mustasch-enkla mallsystem för mer användarvänliga applikationer.
  • Joda Time – mycket komplett och förnuftigt bibliotek för hantering av datum och tider.

Setup dropwizard med maven

vårt projekt kommer att baseras på maven-archetype-quickstart arketyp. Du kan skapa projektet antingen med kommandotolken eller använda eclipse för att skapa enkla Maven java-projekt.

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

genererat projekt kommer också att ha pom.xml fil. Lägg till dropwizard beroende där.

detta kommer att ladda ner alla jar-filer och lägga till dem i din classpath. För att lägga till bygg-och paketstöd till vårt projekt kommer vi att använda Maven-shade-plugin, vilket gör att vi kan paketera vårt projekt helt, tillsammans med dess beroenden, till en enda fristående JAR-fil (Fat/Uber JAR) som kan distribueras och köras som det är.

komplett pom.xml-fil ser ut så här.

skapa REST Application Class

Application class är ingångspunkt för alla dropwizard-applikationer. Det måste förlänga klassen io.dropwizard.Application och implementera metoderna initialize(Bootstrap<Configuration>) och run(Configuration, Environment). De förbereder programmets runtime-miljö.

för att åberopa körmetoden måste du ha public static void main(String args) {} – metoden, som kommer att åberopas av java -jar – kommandot när du kör programmet som jar-fil.

för att köra JAR-filen lägger vi till serverargumentet till kommandot som startar den inbäddade HTTP-servern (Jetty) för att köra vår tjänst.

java -jar target\DropWizardExample.jar server

Dropwizards inbäddade Jetty-server kommer att försöka binda till portarna 8080 och 8081 som standard. Port 8080 används av servern för att betjäna inkommande HTTP-förfrågningar till applikationen, medan 8081 används av Dropwizards administrationsgränssnitt.

vi har också importerat de nödvändiga Logger och LoggerFactory klasserna för att konstruera en Loggerinstans som vi kan använda för våra loggningsbehov.

skapa REST-resurs och API: er

nu när du har lagt till program bootstrap-klass kan du nu lägga till REST-resurser som innehåller REST-API: er. I det här exemplet har jag skapat och anställd management application – så det har API för att skapa/uppdatera/ta bort anställd poster. Den här klassen ansvarar för att hantera HTTP-förfrågningar och generera JSON-svar.

eftersom vi har Jersey i vår classpath, kommer vi att använda den för att bygga REST API: er.

för att imitera DB har jag skapat EmployeeDB klass som lagrar anställdas poster och uppdateringar i minnet.

Bygg Resursrepresentationer

Representation är det som håller data och serialiseras till JSON. Det är modell för vilsam applikation. När du använder Jersey med Jackson är allt du behöver för att bygga en resursrepresentation – en enkel POJO som följer java bean-standarder. Jackson konstruerar JSON-strängen rekursivt enligt getter-metoderna för varje klass och deras returtyp.

varje instans av typen java.util.List konverteras till en JSON-array.

om det behövs i vissa fall kan du förhindra att en egenskap ingår i JSON-representationen genom att lägga till @JsonIgnore – anteckningen till dess getter.

begär validering

när du accepterar PUT och POST förfrågningar måste du validera användarinlämnat entitetsinnehåll i begäran. Dropwizard använder hibernate validator för detta ändamål. Att lägga till validering kräver följande steg.

verifiera REST API: er

nu när vi har skapat och lagt till valideringar för REST API: er, Låt oss testa detta.

bygga ansökan uber jar fil

> mvn clean package

starta programmet i jetty server

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

tillgång URI http://localhost:8080/employees

detta kommer att återvända anställda samling och relaterade svar rubriker.

Dropwizard-få begäran exempel– 1

tillgång URI http://localhost:8080/employees/1

detta kommer att returnera anställdas rekord med id 1.

Dropwizard-få begäran exempel– 2

skickat HTTP PUT http://localhost:8080/employees / 1 med ogiltiga förfrågningsdata

får du valideringsmeddelanden.

Dropwizard-validering exempel

skickat HTTP PUT http://localhost:8080/employees/1 med korrekta data

anställd rekord kommer att uppdateras.

Dropwizard – put request exempel

på samma sätt kan du testa andra API: er och scenarier.

You might also like

Lämna ett svar

Din e-postadress kommer inte publiceras.