Dropwizard Tutorial-Hello World Example

Dropwizard on avoimen lähdekoodin Java-kehys REST-sovellusliittymien nopeaan kehittämiseen. Dropwizard on eräänlainen ekosysteemi, joka sisältää kaikki riippuvuudet (kuten Jersey, jackson tai jetty) nipussa yhdeksi paketiksi tai voidaan lisätä erillisenä moduulina. Jos et käytä dropwizard, päädyt kerätä kaikki riippuvuudet itse ja se usein johtaa luokan lastaus kysymyksiä, koska versio epäsuhta eri java kirjastot. Dropwizard ratkaise tämä ongelma sinulle, ja vetää yhteen vakaa, kypsä kirjastot yksinkertainen, kevyt paketti, jonka avulla voit keskittyä saada asioita aikaan. Opetellaan käyttämään dropwizard rakentaa loput API-vaihe vaiheelta.

Table of ContentsLibraries included inside dropwizardSetup dropwizard with mavenCreate REST Application ClassCreate REST Resource and APIsBuild Resource RepresentationsRequest ValidationVerify REST APIs
tarvitset Java 8: n käyttääksesi tässä koodissa annettuja esimerkkejä, jotka on kehitetty dropwizard version 1.0.0 avulla.

Dropwizardin sisällä olevat kirjastot

kun olet sisällyttänyt dropwizardin projektiin, saat seuraavat kirjastot lisättyä classpathiin.

  • Jersey-Levollisten web-sovellusten rakentamiseen.
  • Jetty – Dropwizard käyttää Jetty HTTP-kirjastoa UPOTTAAKSEEN HTTP-palvelimen suoraan projektiisi.
  • Jackson-for object to / from JSON conversion. Sen avulla voit viedä verkkotunnusmallisi suoraan JAXB-merkinnöillä.
  • Guava-erittäin optimoidut muuttumattomat Tietorakenteet nopeuttamaan kehitystä.
  • Logback ja SLF4j-performantille ja joustavalle puunkorjuulle.
  • Hibernate Validator-helppo deklaratiivinen kehys käyttäjän syötteiden validointiin ja hyödyllisten ja i18n-ystävällisten virhesanomien tuottamiseen.
  • Apache HTTPClient – sekä matalan että korkean tason vuorovaikutukseen muiden verkkopalvelujen kanssa.
  • JDBI – suoraviivaisin tapa käyttää relaatiotietokantaa Javan kanssa.
  • Liquidbase – pitää tietokannan skeema kurissa koko kehitys-ja julkaisusyklin ajan.
  • FreeMarker-templating systems.
  • viikset-yksinkertaiset templatointijärjestelmät käyttäjäsuuntautuneempiin sovelluksiin.
  • Joda Time-erittäin täydellinen ja terve kirjasto päivämäärien ja kellonaikojen käsittelyyn.

Setup dropwizard with maven

projektimme perustuu Maven-arkkityyppi-quickstart-arkkityyppiin. Voit luoda projektin joko komentokehotteella tai käyttää eclipse luoda yksinkertainen Maven java-projekti.

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

Generoidulla projektilla on myös pom.xml tiedosto. Lisää dropwizard riippuvuus siellä.

tämä lataa kaikki jar-tiedostot ja lisää ne classpathiin. Lisätäksemme build – ja package-tuen projektiimme käytämme Maven-shade-laajennusta, jonka avulla voimme paketoida projektimme kokonaan riippuvuuksineen yhdeksi erilliseksi JAR-tiedostoksi (Fat/Uber-purkki), joka voidaan jakaa ja toteuttaa sellaisenaan.

täydellinen pom.xml-tiedosto näyttää tältä.

Create REST Application Class

Application class on aloituspiste mille tahansa dropwizard-sovellukselle. Sen on laajennettava io.dropwizard.Application – luokkaa ja otettava käyttöön initialize(Bootstrap<Configuration>) ja run(Configuration, Environment) – menetelmät. He valmistelevat sovelluksen ajonaikaisen ympäristön.

käyttääksesi run-menetelmää, sinulla on oltava public static void main(String args) {} – menetelmä, johon vedotaan java -jar – komennolla, kun suoritat sovelluksen jar-tiedostona.

JAR-tiedoston suorittamiseen lisäämme palvelinargumentin komentoon, joka käynnistää sulautetun HTTP-palvelimen (Jetty) palvelumme suorittamista varten.

java -jar target\DropWizardExample.jar server

Dropwizardin upotettu Laituripalvelin yrittää oletusarvoisesti sitoutua portteihin 8080 ja 8081. Palvelin käyttää porttia 8080 palvelemaan sovellukseen saapuvia HTTP-pyyntöjä, kun taas 8081: tä käyttää Dropwizardin hallintaliittymä.

olemme myös tuoneet tarvittavat Logger ja LoggerFactory luokat rakentaaksemme metsuri-instanssin, jota voisimme käyttää hakkuutarpeisiimme.

luo LEPORESURSSI ja sovellusliittymät

nyt kun olet lisännyt sovelluksen bootstrap-luokan, voit lisätä LEPORESURSSEJA, jotka sisältävät LEPORAJAPINNAT. Tässä esimerkissä, olen luonut ja henkilöstöhallinnon sovellus-joten se on API luoda / päivittää/poistaa työntekijöiden tietueita. Tämä luokka vastaa HTTP-pyyntöjen käsittelystä ja JSON-vastausten tuottamisesta.

koska meillä on pelipaita lukossa, käytämme sitä LEVÄHDYSRAJAPINTOJEN rakentamiseen.

DB: n jäljittelyä varten olen luonut EmployeeDB luokan, joka tallentaa työntekijöiden tiedot ja päivitykset muistiin.

Build Resource Representations

representaatio on se, mikä pitää aineistoa hallussaan ja sarjallistettuna JSONIIN. Se on levollisen sovelluksen malli. Kun käytät Jerseytä Jacksonin kanssa, sinun tarvitsee vain rakentaa resurssiedustus-yksinkertainen POJO, joka noudattaa java bean-standardeja. Jackson konstruoi JSON-merkkijonon rekursiivisesti kunkin luokan getter-menetelmien ja niiden paluutyypin mukaan.

mikä tahansa java.util.List – tyypin esiintymä muunnetaan JSON-matriisiksi.

jos joissakin tapauksissa vaaditaan, voit estää ominaisuuden kuulumisen JSON-esitykseen lisäämällä sen getteriin @JsonIgnore – merkinnän.

pyynnön validointi

kun hyväksyt PUT ja POST pyyntöjä, sinun tulee validoida käyttäjän lähettämä kokonaisuuden sisältö pyynnön elimessä. Dropwizard käyttää hibernate validator tähän tarkoitukseen. Validoinnin lisääminen edellyttää seuraavia vaiheita.

Tarkista LEPORAJAPINNAT

nyt kun olemme luoneet ja lisänneet validoinnit LEPORAJAPINTOJA varten, kokeillaan tätä.

Build application uber jar file

> mvn clean package

Start application in jetty server

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

Access URI http://localhost:8080/employees

tämä palauttaa työntekijöiden kokoelman ja siihen liittyvät vastausotsikot.

Dropwizard-GET Request Esimerkki– 1

käyttö-URI http://localhost:8080/employees/1

tämä palauttaa työntekijän tiedot id 1.

Dropwizard-GET Request Esimerkki– 2

lähetetty HTTP laittaa http://localhost:8080/employees/1 virheellisillä pyyntötiedoilla

saat validointiviestejä.

Dropwizard-Validointiesimerkki

lähetetty HTTP PUT http://localhost:8080/employees / 1 oikeilla tiedoilla

työntekijöiden tiedot päivitetään onnistuneesti.

Dropwizard-PUT request Example

samalla tavalla voit testata muita sovellusliittymiä ja skenaarioita.

You might also like

Vastaa

Sähköpostiosoitettasi ei julkaista.