Dropwizard Tutorial – Hello World Example

Dropwizard Er en Åpen Kildekode Java rammeverk for den raske utviklingen AV REST Apier. Dropwizard er slags økosystem som inneholder alle avhengigheter (Som Jersey, jackson eller brygge) buntet i en enkelt pakke eller kan legges til som egen modul. Hvis du ikke bruker dropwizard, vil du ende opp med å samle alle avhengigheter selv, og det resulterer ofte i klasselastingsproblemer på grunn av versjonsfeil mellom ulike java-biblioteker. Dropwizard løse dette problemet for deg, og trekker sammen stabile, modne biblioteker i en enkel, lett pakke som lar deg fokusere på å få ting gjort. La oss lære å bruke dropwizard til å bygge REST Apier-trinnvis.

Table of ContentsLibraries included inside dropwizardSetup dropwizard with mavenCreate REST Application ClassCreate REST Resource and APIsBuild Resource RepresentationsRequest ValidationVerify REST APIs
Du trenger Java 8 for å kjøre eksemplene gitt i denne koden som er utviklet ved hjelp av dropwizard versjon 1.0.0.

Biblioteker inkludert i dropwizard

Når du inkluderer dropwizard i prosjektet ditt, får du følgende biblioteker lagt til i klassen din.

  • Jersey-for å bygge RESTful web-applikasjoner.
  • Jetty-Dropwizard bruker Jetty HTTP-biblioteket til å bygge INN EN HTTP-server direkte i prosjektet.
  • Jackson – for objekt til / FRA json-konvertering. Det gjør det mulig å eksportere domenemodeller direkte MED jaxb-merknader.
  • Guava – svært optimalisert uforanderlige datastrukturer for å fremskynde utvikling.
  • Logback Og SLF4j – for effektiv og fleksibel logging.
  • Hibernate Validator – en enkel deklarativ rammeverk for å validere brukerinngang og generere nyttige og i18n-vennlige feilmeldinger.
  • Apache HTTPClient – for både lav – og høyt nivå interaksjon med andre webtjenester.
  • JDBI – den enkleste måten å bruke en relasjonsdatabase med Java.
  • Liquidbase-for å holde databaseskjemaet i sjakk gjennom hele utviklings-og utgivelsessyklusen.
  • FreeMarker – templating systemer.
  • Mustache – enkle templating systemer for flere brukervendte applikasjoner.
  • Joda Time – veldig komplett og tilregnelig bibliotek for håndtering av datoer og klokkeslett.

Oppsett dropwizard med maven

vårt prosjekt vil være basert på maven-archetype-quickstart arketypen. Du kan opprette prosjektet enten ved hjelp av ledetekst eller bruke eclipse å lage enkle maven java-prosjekt.

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

Generert prosjekt vil også ha pom.xml fil. Legg dropwizard avhengighet der.

dette vil laste ned alle jar filer og legge dem inn i din classpath. For å legge bygge og pakke støtte til vårt prosjekt, vil vi bruke maven-shade plugin, som vil tillate oss å pakke vårt prosjekt helt, sammen med sine avhengigheter, i en enkelt frittstående JAR fil (Fat/Uber JAR) som kan distribueres og utføres som den er.

Komplett pom.xml-filen ser slik ut.

Opprett REST Application Class

Application class er inngangspunkt for alle dropwizard program. Den må utvide klassen io.dropwizard.Application og implementere metodene initialize(Bootstrap<Configuration>) og run(Configuration, Environment). De forbereder runtime miljøet i programmet.

for å starte run-metoden må du ha public static void main(String args) {} – metoden, som vil påberopes av java -jar – kommandoen når du kjører programmet som jar-fil.

for å utføre JAR-filen legger vi til serverargumentet i kommandoen som starter den innebygde HTTP-Serveren (Jetty) for å kjøre tjenesten vår.

java -jar target\DropWizardExample.jar server

Dropwizards innebygde Brygge-server vil prøve å binde seg til porter 8080 og 8081 som standard. Port 8080 brukes av serveren for å betjene innkommende HTTP-forespørsler til applikasjonen, mens 8081 brukes av Dropwizards administrasjonsgrensesnitt.

Vi har også importert de nødvendige Logger og LoggerFactory klasser for å konstruere En Logger eksempel vi kunne bruke for våre logging behov.

Opprett REST Ressurs Og Apier

Nå når Du har lagt Til Programmet bootstrap klasse, kan du nå legge REST ressurser som inneholder REST Apier. I dette eksemplet har jeg opprettet og ansattes administrasjonsprogram-så Det har Apier for opprett/oppdater / slett ansattes poster. Denne klassen vil være ansvarlig for å håndtere HTTP-forespørsler og generere JSON-svar.

Som Vi har Jersey i vår classpath, vil vi bruke DEN til å bygge REST Apier.

for å etterligne DB har jeg opprettet EmployeeDB klasse som lagrer ansattes poster og oppdateringer i minnet.

Bygg Ressursrepresentasjoner

Representasjon er Det som holder dataene og serialisert I JSON. Det er modell For RESTful søknad. Når Du bruker Jersey Med Jackson, er alt du trenger for å bygge en ressursrepresentasjon – en enkel POJO som følger java bean-standarder. Jackson konstruerer json-strengen rekursivt i henhold til getter-metodene for hver klasse og deres returtype.

enhver forekomst av typen java.util.List konverteres til EN JSON-matrise.

hvis det er nødvendig i noen tilfeller kan du forhindre at en egenskap blir en DEL AV json-representasjonen ved å legge til @JsonIgnore – merknaden i getter.

Forespørselsvalidering

når du godtar PUT og POST forespørsler, må du validere brukerinnsendt enhetsinnhold i forespørselsorgan. Dropwizard bruker hibernate validator for dette formålet. Legge til validering krever følgende trinn.

Bekreft REST Apier

nå når VI har opprettet OG lagt til valideringer FOR REST Apier, la oss teste dette ut.

Bygg søknad uber jar file

> mvn clean package

Start programmet i brygge server

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

Tilgang URI http://localhost:8080/employees

dette vil returnere ansatte samling og relaterte svar overskrifter.

Dropwizard-FÅ Forespørsel Eksempel– 1

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

dette vil returnere ansattes rekord med id 1.

Dropwizard-FÅ Forespørsel Eksempel– 2

SENDT HTTP PUT http://localhost:8080/employees / 1 med ugyldige forespørselsdata

du vil få valideringsmeldinger.

Dropwizard-Validering Eksempel

Sendt HTTP PUT http://localhost:8080/employees / 1 med riktige data

Ansatt posten vil bli oppdatert.

Dropwizard-PUT forespørsel Eksempel

på samme måte kan du teste Andre Apier og scenarier.

You might also like

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert.