a Dropwizard egy nyílt forráskódú Java keretrendszer a REST API-k gyors fejlődéséhez. A Dropwizard egyfajta ökoszisztéma, amely tartalmazza az összes függőséget (például Jersey, jackson vagy móló) egyetlen csomagba csomagolva, vagy külön modulként hozzáadható. Ha nem használja a dropwizard-ot, akkor az összes függőséget maga gyűjti össze, és gyakran osztályterhelési problémákat okoz a különböző java könyvtárak közötti verzióeltérés miatt. A Dropwizard megoldja ezt a problémát az Ön számára, és stabil, Érett könyvtárakat hoz össze egy egyszerű, könnyű csomagba, amely lehetővé teszi, hogy a dolgok elvégzésére összpontosítson. Tanuljuk meg a dropwizard használatát a REST API-k építéséhez-lépésről lépésre.
Table of ContentsLibraries included inside dropwizardSetup dropwizard with mavenCreate REST Application ClassCreate REST Resource and APIsBuild Resource RepresentationsRequest ValidationVerify REST APIs
- könyvtárak benne dropwizard
- a dropwizard beállítása a Maven
- Create REST alkalmazás osztály
- Rest erőforrás és API-k létrehozása
- Építsd erőforrás reprezentációk
- kérelem érvényesítése
- ellenőrizze a REST API-kat
- alkalmazás létrehozása uber jar fájl
- alkalmazás indítása a móló szerveren
- hozzáférés URI http://localhost:8080/employees
- Uri hozzáférés http://localhost:8080/employees/1
- elküldött HTTP PUT http://localhost:8080/employees / 1 érvénytelen kérési adatokkal
- elküldött HTTP PUT http://localhost:8080/employees/1 helyes adatokkal
könyvtárak benne dropwizard
miután tartalmazza dropwizard be a projekt, akkor kap a következő könyvtárak hozzá a classpath.
- Jersey – az épület RESTful webes alkalmazások.
- Jetty – Dropwizard használja a Jetty HTTP könyvtár beágyazni egy HTTP szerver közvetlenül a projekt.
- Jackson – az objektum/a JSON átalakítás. Ez lehetővé teszi, hogy exportálja a domain modellek közvetlenül JAXB kommentárok.
- Guava – nagymértékben optimalizált változhatatlan adatstruktúrák a fejlesztés felgyorsítása érdekében.
- Logback és SLF4j – hatékony és rugalmas naplózáshoz.
- Hibernate Validator – egyszerű deklaratív keretrendszer a felhasználói bevitel érvényesítéséhez és hasznos és i18n-Barát hibaüzenetek létrehozásához.
- Apache HTTPClient – mind az alacsony, mind a magas szintű interakcióhoz más webszolgáltatásokkal.
- JDBI – a legegyszerűbb módja annak, hogy egy relációs adatbázis Java.
- Liquidbase – az adatbázis séma ellenőrzése a fejlesztési és kiadási ciklus során.
- FreeMarker – sablonozó rendszerek.
- bajusz – egyszerű sablonrendszerek a felhasználóbarát alkalmazásokhoz.
- Joda Time – nagyon komplett és józan könyvtár a dátumok és időpontok kezelésére.
a dropwizard beállítása a Maven
projektünk a maven-archetype-quickstart archetípuson alapul. A projektet a parancssor használatával vagy az eclipse használatával hozhatja létre egyszerű Maven java projekt létrehozásához.
mvn archetype:generate -DgroupId=com.howtodoinjava.demo -DartifactId=DropWizardExample -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
generált projekt lesz pom.xml
fájlt is. Add hozzá a dropwizard függőséget.
Ez letölti az összes jar fájlt, és hozzáadja őket a classpath-hoz. Ahhoz, hogy build és csomag támogatást adjunk a projektünkhöz, a maven-shade plugint fogjuk használni, amely lehetővé teszi számunkra, hogy teljes mértékben csomagoljuk a projektünket, a függőségeivel együtt, egyetlen önálló JAR fájlba (Fat/Uber JAR), amely elosztható és végrehajtható.
teljes pom.az xml fájl így néz ki.
Create REST alkalmazás osztály
alkalmazás osztály belépési pont minden dropwizard alkalmazás. Ki kell terjesztenie a io.dropwizard.Application
osztályt, és végre kell hajtania a initialize(Bootstrap<Configuration>)
és run(Configuration, Environment)
módszereket. Elkészítik az alkalmazás futási környezetét.
a Futtatás metódus meghívásához rendelkeznie kell public static void main(String args) {}
metódussal, amelyet a java -jar
parancs hív meg, amikor az alkalmazást jar fájlként futtatja.
a JAR fájl végrehajtásához hozzáadjuk a szerver argumentumot a parancshoz, amely elindítja a beágyazott HTTP szervert (Jetty) a szolgáltatás futtatásához.
java -jar target\DropWizardExample.jar server
a Dropwizard beágyazott Jetty szervere alapértelmezés szerint a 8080-as és 8081-es portokhoz próbál kötődni. A 8080-as portot a kiszolgáló használja a bejövő HTTP-kérések kiszolgálására az alkalmazáshoz, míg a 8081-et a Dropwizard adminisztrációs felülete használja.
importáltuk a szükséges Logger
és LoggerFactory
osztályokat is, hogy létrehozzunk egy naplózási példányt, amelyet felhasználhatunk a naplózási igényeinkhez.
Rest erőforrás és API-k létrehozása
most ha hozzáadta az Application bootstrap osztályt, most hozzáadhat REST-erőforrásokat, amelyek REST API-kat tartalmaznak. Ebben a példában létrehoztam az alkalmazotti menedzsment alkalmazást – tehát API-k vannak az alkalmazotti rekordok létrehozásához/frissítéséhez/törléséhez. Ez az osztály felelős a HTTP kérések kezeléséért és a JSON válaszok létrehozásáért.
mivel a mezünk a classpath-ban van, a REST API-k építésére fogjuk használni.
a DB utánzásához létrehoztam a EmployeeDB
osztályt, amely az alkalmazottak rekordjait és frissítéseit tárolja a memóriában.
Építsd erőforrás reprezentációk
reprezentáció, ami tárolja az adatokat, és szerializált JSON. Ez a nyugodt alkalmazás modellje. Amikor Jersey-t használ Jacksonnal, az erőforrás-ábrázolás felépítéséhez csak egy egyszerű POJO szükséges, amely követi a java bean szabványokat. Jackson rekurzív módon építi fel a JSON karakterláncot az egyes osztályok getter metódusai és azok visszatérési típusa szerint.
java.util.List
típus bármely példánya JSON tömbre konvertálódik. ha bizonyos esetekben szükséges, megakadályozhatja, hogy egy tulajdonság a JSON-ábrázolás része legyen, ha hozzáadja a @JsonIgnore
kommentárt a getteréhez.
kérelem érvényesítése
PUT
és POST
kérelmek elfogadásakor a kérelem törzsében érvényesíteni kell a felhasználó által beküldött entitás tartalmát. A Dropwizard erre a célra hibernate validatort használ. Az érvényesítés hozzáadásához a következő lépések szükségesek.
ellenőrizze a REST API-kat
most, hogy létrehoztuk és hozzáadtuk a REST API-k érvényesítését, teszteljük ezt ki.
alkalmazás létrehozása uber jar fájl
> mvn clean package
alkalmazás indítása a móló szerveren
> java -jar target\DropWizardExample-0.0.1-SNAPSHOT.jar server
hozzáférés URI http://localhost:8080/employees
ez visszaadja az alkalmazottak gyűjteményét és a kapcsolódó válaszfejléceket.
Uri hozzáférés http://localhost:8080/employees/1
ez visszaadja a munkavállaló rekordját az 1. azonosítóval.
elküldött HTTP PUT http://localhost:8080/employees / 1 érvénytelen kérési adatokkal
érvényesítési üzeneteket kap.
elküldött HTTP PUT http://localhost:8080/employees/1 helyes adatokkal
az alkalmazottak rekordja sikeresen frissül.
ugyanígy tesztelhet más API-kat és forgatókönyveket is.