Dropwizard Tutorial – Hello World Příklad

Dropwizard je open source Java framework pro rychlý vývoj REST Api. Dropwizard je druh ekosystému, který obsahuje všechny závislosti (například Jersey, jackson nebo jetty) svázané do jednoho balíčku nebo mohou být přidány jako samostatný modul. Pokud nepoužíváte dropwizard, skončíte sbíráním všech závislostí sami a často to vede k problémům s načítáním tříd kvůli nesouladu verzí mezi různými knihovnami java. Dropwizard vyřešit tento problém za vás, a táhne dohromady stabilní, zralé knihovny do jednoduchého, lehký balíček, který vám umožní soustředit se na to, jak dělat věci. Naučme se používat dropwizard k vytváření REST API-krok za krokem.

Table of ContentsLibraries included inside dropwizardSetup dropwizard with mavenCreate REST Application ClassCreate REST Resource and APIsBuild Resource RepresentationsRequest ValidationVerify REST APIs
budete potřebovat Java 8 spustit příklady uvedené v tomto kódu, které jsou vyvinuty pomocí dropwizard verze 1.0.0.

knihovny obsažené uvnitř dropwizard

jakmile do projektu zahrnete dropwizard, získáte následující knihovny přidané do vaší třídy.

  • Jersey – pro vytváření klidných webových aplikací.
  • Jetty-Dropwizard používá Jetty HTTP knihovnu vložit HTTP server přímo do vašeho projektu.
  • Jackson – pro objekt do / z JSON konverze. Umožňuje exportovat modely domén přímo s anotacemi JAXB.
  • Guava-vysoce optimalizované neměnné datové struktury pro urychlení vývoje.
  • Logback a SLF4j – pro výkonné a flexibilní protokolování.
  • Hibernate Validator-jednoduchý deklarativní rámec pro ověření vstupu uživatele a generování užitečných a i18n-přátelské chybové zprávy.
  • Apache HTTPClient-pro interakci na nízké i vysoké úrovni s jinými webovými službami.
  • JDBI – nejjednodušší způsob použití relační databáze s Javou.
  • Liquidbase – aby se vaše schéma databáze v zkontrolujte, zda během svého vývoje a vývojového cyklu.
  • FreeMarker-templating systems.
  • Mustache-jednoduché šablonové systémy pro více aplikací orientovaných na uživatele.
  • Joda Time – velmi kompletní a rozumná Knihovna pro manipulaci s daty a časy.

Nastavení dropwizard s maven

Náš projekt bude založen na maven-archetype-quickstart archetyp. Můžete vytvořit projekt buď pomocí příkazového řádku nebo pomocí eclipse vytvořit jednoduchý maven java projekt.

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

vygenerovaný projekt bude mít také soubor pom.xml. Přidejte tam závislost dropwizard.

tím se stáhnou všechny soubory jar a přidají je do vaší třídy. Přidat stavět a balíček podporu našeho projektu, budeme používat maven-odstín plugin, který nám umožní balíčku náš projekt úplně, spolu s jeho závislostí, do jednoho samostatného souboru JAR (Fat/Uber JAR), které mohou být distribuovány a popraven jako je.

kompletní pom.xml soubor vypadá takto.

vytvořit třídu REST aplikace

Třída aplikace je vstupním bodem pro jakoukoli aplikaci dropwizard. Je třeba rozšířit třídu io.dropwizard.Application a implementovat metody initialize(Bootstrap<Configuration>) a run(Configuration, Environment). Připravují runtime prostředí aplikace.

Chcete-li vyvolat metodu run, budete muset mít metodu public static void main(String args) {}, která bude vyvolána příkazem java -jar při spuštění aplikace jako soubor jar.

pro spuštění souboru JAR přidáme argument serveru do příkazu, který spustí vložený HTTP Server (Jetty) pro spuštění naší služby.

java -jar target\DropWizardExample.jar server

Dropwizard ‚ s embedded Jetty server se pokusí navázat na porty 8080 a 8081 ve výchozím nastavení. Port 8080 je používán serverem za účelem doručování příchozích požadavků HTTP do aplikace, zatímco 8081 je používán administračním rozhraním Dropwizard.

také jsme importovali potřebné třídy Logger a LoggerFactory, abychom vytvořili instanci loggeru, kterou bychom mohli použít pro naše potřeby protokolování.

Vytvořte REST Resource a API

Nyní, když jste přidali třídu Bootstrap aplikace, můžete nyní přidat rest resources obsahující REST API. V tomto příkladu jsem vytvořil aplikaci pro správu zaměstnanců-takže má API pro vytváření / aktualizaci/mazání záznamů zaměstnanců. Tato třída bude zodpovědná za zpracování požadavků HTTP a generování odpovědí JSON.

jak máme Jersey v naší classpath, použijeme jej k vytvoření REST API.

pro napodobování DB jsem vytvořil třídu EmployeeDB, která ukládá záznamy a aktualizace zaměstnanců do paměti.

sestavení reprezentace zdrojů

reprezentace je to, co drží data a serializované do JSON. Je to model pro klidnou aplikaci. Při použití Jersey s Jacksonem, vše, co potřebujete k vybudování zdrojů zastupování – jednoduché POJO následující java bean normy. Jackson konstruuje řetězec JSON rekurzivně podle getterových metod každé třídy a jejich typu návratu.

jakákoli instance typu java.util.List bude převedena na pole JSON.

pokud je to v některých případech nutné, můžete zabránit tomu, aby vlastnost byla součástí reprezentace JSON přidáním anotace @JsonIgnore do jejího getteru.

ověření požadavku

při přijímání požadavků PUT a POST budete muset ověřit obsah subjektu odeslaného uživatelem v těle žádosti. Dropwizard používá pro tento účel hibernate validator. Přidání ověření vyžaduje následující kroky.

ověřte REST API

Nyní, když jsme vytvořili a přidali validace pro REST API, pojďme to vyzkoušet.

Vytvořit aplikaci uber jar soubor

> mvn clean package

Spuštění aplikace na jetty serveru

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

Přístup URI http://localhost:8080/employees

To se vrátí zaměstnanci, sběr a související hlavičky odpovědi.

Dropwizard-získat příklad požadavku– 1

přístup k URI http://localhost:8080/employees/1

tím se vrátí záznam zaměstnance s id 1.

Dropwizard – GET Příklad– 2

Odeslán HTTP PUT http://localhost:8080/employees/1 s neplatnou žádost údaje

dostanete potvrzení zprávy.

Dropwizard – Příklad Ověření

Odeslán HTTP PUT http://localhost:8080/employees/1 s správná data

Zaměstnanec záznam bude aktualizován úspěšně.

Dropwizard-PUT request Example

stejným způsobem můžete testovat další API a scénáře.

You might also like

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.