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
- Biblioteker inkludert i dropwizard
- Oppsett dropwizard med maven
- Opprett REST Application Class
- Opprett REST Ressurs Og Apier
- Bygg Ressursrepresentasjoner
- Forespørselsvalidering
- Bekreft REST Apier
- Bygg søknad uber jar file
- Start programmet i brygge server
- Tilgang URI http://localhost:8080/employees
- Tilgang URI http://localhost:8080/employees/1
- SENDT HTTP PUT http://localhost:8080/employees / 1 med ugyldige forespørselsdata
- Sendt HTTP PUT http://localhost:8080/employees / 1 med riktige data
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.
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.
Tilgang URI http://localhost:8080/employees/1
dette vil returnere ansattes rekord med id 1.
SENDT HTTP PUT http://localhost:8080/employees / 1 med ugyldige forespørselsdata
du vil få valideringsmeldinger.
Sendt HTTP PUT http://localhost:8080/employees / 1 med riktige data
Ansatt posten vil bli oppdatert.
på samme måte kan du teste Andre Apier og scenarier.