Dropwizard Tutorial-Hello World Example

Dropwizard este un cadru Java open source pentru dezvoltarea rapidă a API-urilor REST. Dropwizard este un fel de ecosistem care conține toate dependențele (cum ar fi Jersey, jackson sau jetty) incluse într-un singur pachet sau pot fi adăugate ca modul separat. Dacă nu utilizați dropwizard, veți ajunge să colectați singur toate dependențele și de multe ori rezultă probleme de încărcare a clasei din cauza nepotrivirii versiunii între diferite biblioteci java. Dropwizard rezolva această problemă pentru tine, și trage împreună biblioteci stabile, mature într-un pachet simplu, lumina-greutate, care vă permite să se concentreze pe obtinerea lucruri de facut. Să învățăm să folosim dropwizard pentru a construi API – uri REST-pas cu pas.

Table of ContentsLibraries included inside dropwizardSetup dropwizard with mavenCreate REST Application ClassCreate REST Resource and APIsBuild Resource RepresentationsRequest ValidationVerify REST APIs
veți avea nevoie de Java 8 pentru a rula exemplele date în acest cod care sunt dezvoltate folosind dropwizard versiunea 1.0.0.

biblioteci incluse în dropwizard

după ce includeți dropwizard în proiectul dvs., veți obține următoarele biblioteci adăugate la calea de clasă.

  • Jersey – pentru construirea de aplicații Web odihnitoare.
  • Jetty – Dropwizard utilizează biblioteca http Jetty pentru a încorpora un server HTTP direct în proiectul dumneavoastră.
  • Jackson – pentru obiect la/de la conversie JSON. Acesta permite de a exporta modelele de domeniu direct cu adnotări JAXB.
  • Guava – structuri de date imuabile extrem de optimizate pentru a accelera dezvoltarea.
  • Logback și SLF4j – pentru logare performantă și flexibilă.
  • Hibernate Validator – un cadru declarativ ușor pentru validarea de intrare de utilizator și generarea de mesaje de eroare utile și i18n-friendly.
  • Apache HTTPClient – atât pentru interacțiunea la nivel scăzut, cât și la nivel înalt cu alte servicii web.
  • JDBI – cel mai simplu mod de a utiliza o bază de date relațională cu Java.
  • Liquidbase – pentru a menține schema bazei de date sub control pe tot parcursul ciclului de dezvoltare și eliberare.
  • sisteme FreeMarker – templating.
  • Mustache – sisteme templating simple pentru mai multe aplicații orientate spre utilizator.
  • Joda Time – bibliotecă foarte completă și sănătoasă pentru manipularea datelor și orelor.

Setup dropwizard cu maven

proiectul nostru se va baza pe Maven-arhetip-QuickStart arhetip. Puteți crea proiectul fie folosind promptul de comandă sau de a folosi eclipse pentru a crea simplu proiect java Maven.

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

proiectul generat va avea și fișierul pom.xml. Adăugați dependență dropwizard acolo.

aceasta va descărca toate fișierele jar și le va adăuga în classpath. Pentru a adăuga build și pachet de sprijin pentru proiectul nostru, vom folosi plugin-ul maven-shade, care ne va permite să pachet proiectul nostru complet, împreună cu dependențele sale, într-un singur fișier standalone JAR (Fat/Uber JAR), care pot fi distribuite și executate ca atare.

pom complet.fișierul xml arată astfel.

creați clasa de aplicații REST

clasa de aplicații este punctul de intrare pentru orice aplicație dropwizard. Trebuie să extindă clasa io.dropwizard.Application și să implementeze metodele initialize(Bootstrap<Configuration>) și run(Configuration, Environment). Ei pregătesc mediul de rulare al aplicației.

pentru a invoca metoda run, va trebui să aveți metoda public static void main(String args) {}, care va fi invocată de comanda java -jar atunci când executați aplicația ca fișier jar.

pentru executarea fișierului JAR, adăugăm argumentul serverului la comanda care pornește serverul HTTP încorporat (Jetty) pentru a rula serviciul nostru.

java -jar target\DropWizardExample.jar server

Dropwizard ‘ s embedded Jetty server va încerca să se lege la porturile 8080 și 8081 în mod implicit. Portul 8080 este utilizat de server pentru a servi cererile HTTP primite către aplicație, în timp ce 8081 este utilizat de interfața de administrare a Dropwizard.

am importat, de asemenea, clasele necesare Logger și LoggerFactory pentru a construi o instanță Logger am putea folosi pentru nevoile noastre de logare.

creați resurse REST și API-uri

acum, când ați adăugat clasa bootstrap aplicație, puteți adăuga acum resurse REST care conțin API-uri REST. În acest exemplu, am creat și aplicația de gestionare a angajaților-deci are API-uri pentru crearea/actualizarea/ștergerea înregistrărilor angajaților. Această clasă va fi responsabilă pentru gestionarea cererilor HTTP și generarea răspunsurilor JSON.

așa cum avem Jersey în classpath nostru, vom folosi pentru a construi API-uri de odihnă.

pentru imitarea DB, am creat EmployeeDB clasa care stochează înregistrările angajaților și actualizările în memorie.

construi reprezentări de resurse

reprezentarea este ceea ce deține datele și serializate în JSON. Este modelul pentru aplicarea odihnitor. Atunci când se utilizează Jersey cu Jackson, tot ce ai nevoie pentru a construi o reprezentare a resurselor este – un simplu Pojo următoarele standarde java bean. Jackson construiește șirul JSON recursiv în funcție de metodele getter ale fiecărei clase și de tipul lor de întoarcere.

orice instanță de tip java.util.List va fi convertită într-o matrice JSON.

dacă este necesar în unele cazuri, puteți împiedica o proprietate să facă parte din reprezentarea JSON adăugând adnotarea @JsonIgnore la getter.

validarea solicitării

când acceptați solicitările PUT și POST, va trebui să validați conținutul entității trimise de utilizator în corpul solicitării. Dropwizard utilizează Hibernate validator în acest scop. Adăugarea validării necesită următorii pași.

verificați API-urile REST

acum, când am creat și adăugat validări pentru API-urile REST, să testăm acest lucru.

Build cerere uber fișier jar

> mvn clean package

start cerere în jetty server

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

acces URI http://localhost:8080/employees

acest lucru se va întoarce de colectare a angajaților și anteturile de răspuns aferente.

Dropwizard – obțineți exemplu de solicitare– 1

uri de acces http://localhost:8080/employees/1

aceasta va returna înregistrarea angajatului cu id-ul 1.

Dropwizard – obțineți exemplu de solicitare– 2

Sent HTTP PUT http://localhost:8080/employees / 1 cu date de solicitare nevalide

veți primi mesaje de validare.

Dropwizard-exemplu de validare

trimis HTTP PUT http://localhost:8080/employees/1 cu date corecte

înregistrare angajat va fi actualizat cu succes.

Dropwizard-pune exemplu cerere

în același mod, puteți testa alte API-uri și scenarii.

You might also like

Lasă un răspuns

Adresa ta de email nu va fi publicată.