Dropvej er en open source Java ramme for den hurtige udvikling af REST API ‘ er. Jersey, jackson eller anløbsbro) bundtet i en enkelt pakke eller kan tilføjes som separat modul. Hvis du ikke bruger
Table of ContentsLibraries included inside dropwizardSetup dropwizard with mavenCreate REST Application ClassCreate REST Resource and APIsBuild Resource RepresentationsRequest ValidationVerify REST APIs
- biblioteker inkluderet i dropvej
- opsætning dropvisning med maven
- Opret REST-Applikationsklasse
- Opret REST ressource og API ‘er
- Byg ressource repræsentationer
- Anmod om Validering
- Bekræft REST API ‘er
- Byg applikation uber jar file
- Start applikation i jetty server
- få adgang til URI http://localhost:8080/employees
- Access URI http://localhost:8080/employees/1
- sendt HTTP PUT http://localhost:8080/employees / 1 med ugyldige anmodningsdata
- sendt HTTP PUThttp://localhost:8080/employees/1 med korrekte data
biblioteker inkluderet i dropvej
når du har inkluderet dropvej i dit projekt, får du følgende biblioteker tilføjet til din classpath.
- Jersey – til opbygning af afslappende applikationer.
- anløbsbro bruger anløbsbro HTTP – biblioteket til at integrere en HTTP-server direkte i dit projekt.
- Jackson – for objekt til/fra JSON konvertering. Det gør det muligt at eksportere dine domænemodeller direkte med kommentarer.
- Guava – meget optimeret uforanderlige datastrukturer til at fremskynde udviklingen.
- Logback og SLF4j – til effektiv og fleksibel logning.
- Hibernate Validator – en nem deklarativ ramme til validering af brugerinput og generering af nyttige og i18n-venlige fejlmeddelelser.
- Apache HTTPClient – til både lav – og højt niveau interaktion med andre internettjenester.
- JDBI – den mest enkle måde at bruge en relationsdatabase med Java.
- væskebase – for at holde din database skema i skak i hele din udvikling og frigivelse cyklus.
- FreeMarker – templating systemer.
- Mustache – simple templating systemer til mere bruger-vender applikationer.
- Joda Time – meget komplet og sane bibliotek til håndtering af datoer og tidspunkter.
opsætning dropvisning med maven
vores projekt vil være baseret på maven-arketype-hurtigstart arketype. Du kan oprette projektet enten ved hjælp af kommandoprompt eller bruge eclipse til at oprette simpelt maven java-projekt.
mvn archetype:generate -DgroupId=com.howtodoinjava.demo -DartifactId=DropWizardExample -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
genereret projekt vil have pom.xml
fil samt. Tilføj afhængighed der.
dette vil hente alle jar filer og tilføje dem til din classpath. For at tilføje build-og pakkesupport til vores projekt bruger vi maven-shade-pluginet, som giver os mulighed for at pakke vores projekt fuldstændigt sammen med dets afhængigheder i en enkelt enkeltstående JAR-fil (Fat/Uber JAR), der kan distribueres og udføres som den er.
komplet pom.se sådan ud.
Opret REST-Applikationsklasse
Applikationsklasse er indgangspunkt for ethvert dropvandsprogram. Det er nødvendigt at udvide io.dropwizard.Application
klassen og implementere initialize(Bootstrap<Configuration>)
og run(Configuration, Environment)
metoderne. De forbereder runtime-miljøet i applikationen.
for at påberåbe sig køremetoden skal du have public static void main(String args) {}
metode, som påberåbes af kommandoen java -jar
, når du kører applikationen som jar-fil.
til udførelse af JAR-filen tilføjer vi serverargumentet til kommandoen, der starter den integrerede HTTP-Server (Jetty) for at køre vores service.
java -jar target\DropWizardExample.jar server
som standard forsøger vi at binde til portene 8080 og 8081. Port 8080 bruges af serveren til at betjene indgående HTTP-anmodninger til applikationen, mens 8081 bruges af
vi har også importeret de nødvendige Logger
og LoggerFactory
klasser for at konstruere en Logger instans vi kunne bruge til vores logning behov.
Opret REST ressource og API ‘er
nu når du har tilføjet Application bootstrap class, kan du nu tilføje REST ressourcer, der indeholder REST API’ er. I dette eksempel har jeg oprettet og medarbejderstyringsapplikation – så det har API ‘ er til oprettelse/opdatering/sletning af medarbejderposter. Denne klasse er ansvarlig for håndtering af HTTP-anmodninger og generering af JSON-svar.
da vi har trøje i vores classpath, vil vi bruge den til at bygge REST API ‘ er.
til efterligning af DB har jeg oprettet EmployeeDB
klasse, der gemmer medarbejderposter og opdateringer i hukommelsen.
Byg ressource repræsentationer
repræsentation er, hvad holder data og føljeton i JSON. Det er model for afslappende ansøgning. Når du bruger Jersey med Jackson, er alt hvad du behøver for at opbygge en ressourcerepræsentation – en simpel POJO, der følger java bean-standarder. Jackson konstruerer JSON-strengen rekursivt i henhold til getter-metoderne i hver klasse og deres returtype.
java.util.List
– typen konverteres til et JSON-array. hvis det kræves i nogle tilfælde, kan du forhindre en egenskab i at være en del af JSON-repræsentationen ved at tilføje @JsonIgnore
annotationen til dens getter.
Anmod om Validering
når du accepterer PUT
og POST
anmodninger, skal du validere brugerindsendt enhedsindhold i anmodningsorganet. Dvaletilstand bruger dvaletilstand validator til dette formål. Tilføjelse af Validering kræver følgende trin.
Bekræft REST API ‘er
nu når vi har oprettet og tilføjet valideringer for REST API’ er, lad os teste dette ud.
Byg applikation uber jar file
> mvn clean package
Start applikation i jetty server
> java -jar target\DropWizardExample-0.0.1-SNAPSHOT.jar server
få adgang til URI http://localhost:8080/employees
dette vil returnere medarbejderes indsamling og relaterede svaroverskrifter.
Access URI http://localhost:8080/employees/1
dette vil returnere medarbejderens rekord med id 1.
sendt HTTP PUT http://localhost:8080/employees / 1 med ugyldige anmodningsdata
får du valideringsmeddelelser.
sendt HTTP PUThttp://localhost:8080/employees/1 med korrekte data
Medarbejderrekord opdateres med succes.
på samme måde kan du teste andre API ‘ er og scenarier.