Dropwizard Tutorial-Hello World Example

Dropwizard is een open source Java framework voor de snelle ontwikkeling van REST API ‘ s. Dropwizard is een soort ecosysteem dat alle afhankelijkheden bevat (zoals Jersey, jackson of jetty) gebundeld in één pakket of kan worden toegevoegd als aparte module. Als u dropwizard niet gebruikt, zult u uiteindelijk zelf alle afhankelijkheden verzamelen en het resulteert vaak in problemen met het laden van de klasse als gevolg van versie mismatch tussen verschillende java-bibliotheken. Dropwizard los dit probleem voor u op, en brengt stabiele, volwassen bibliotheken samen in een eenvoudig, lichtgewicht pakket waarmee u zich kunt concentreren op het krijgen van dingen gedaan. Laten we leren om dropwizard gebruiken om REST API ‘ s te bouwen – stap voor stap.

Table of ContentsLibraries included inside dropwizardSetup dropwizard with mavenCreate REST Application ClassCreate REST Resource and APIsBuild Resource RepresentationsRequest ValidationVerify REST APIs
u hebt Java 8 nodig om de voorbeelden in deze code uit te voeren die zijn ontwikkeld met dropwizard Versie 1.0.0.

bibliotheken die deel uitmaken van dropwizard

zodra u dropwizard in uw project opneemt, krijgt u de volgende bibliotheken toegevoegd aan uw classpath.

  • Jersey-Voor het bouwen van RESTful webapplicaties.
  • Jetty-Dropwizard gebruikt de jetty HTTP library om een HTTP server direct in uw project in te voegen.
  • Jackson-voor object naar/van JSON conversie. Hiermee kunt u uw domeinmodellen rechtstreeks exporteren met JAXB-annotaties.
  • Guava-sterk geoptimaliseerde onveranderlijke datastructuren om de ontwikkeling te versnellen.
  • Logback en SLF4j – voor performante en flexibele logging.
  • Hibernate Validator – een eenvoudig declaratief kader voor het valideren van gebruikersinvoer en het genereren van nuttige en i18n-vriendelijke foutmeldingen.
  • Apache HttpClient-voor zowel low-als high-level interactie met andere webservices.
  • JDBI – de meest eenvoudige manier om een relationele database met Java te gebruiken.
  • Liquidbase – om uw databaseschema in toom te houden gedurende uw ontwikkelings-en releasecyclus.
  • Vrijemarker-templating systemen.
  • snor-eenvoudige templating systemen voor meer gebruikersgerichte toepassingen.
  • Joda Time-zeer complete en gezonde bibliotheek voor het verwerken van datums en tijden.

dropwizard instellen met maven

ons project zal gebaseerd zijn op het Maven-archetype-quickstart archetype. U kunt het project maken met behulp van command prompt of eclipse gebruiken om eenvoudige Maven java project te maken.

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

gegenereerd project zal ook een bestand pom.xml hebben. Voeg dropwizard afhankelijkheid daar.

dit zal alle jar-bestanden downloaden en toevoegen aan uw klasspath. Om build en pakket ondersteuning toe te voegen aan ons project, zullen we de Maven-shade plugin gebruiken, die ons in staat zal stellen om ons project volledig te verpakken, samen met de afhankelijkheden, in een enkele standalone JAR-bestand (Fat/Uber JAR) die kan worden gedistribueerd en uitgevoerd zoals is.

Complete pom.xml-bestand ziet er zo uit.

REST toepassingsklasse

toepassingsklasse is het invoerpunt voor elke dropwizard-toepassing. Het moet de klasse io.dropwizard.Application uitbreiden en de methoden initialize(Bootstrap<Configuration>) en run(Configuration, Environment) toepassen. Ze bereiden de runtime-omgeving van de applicatie voor.

om de methode uitvoeren aan te roepen, hebt u de methode public static void main(String args) {} nodig, die wordt aangeroepen door het commando java -jar wanneer u de toepassing uitvoert als jar-bestand.

voor het uitvoeren van het JAR-bestand, voegen we het serverargument toe aan het commando dat de ingesloten HTTP-Server (Jetty) start om onze service uit te voeren.

java -jar target\DropWizardExample.jar server

de ingebedde Jetty-server van Dropwizard zal standaard proberen te binden aan de poorten 8080 en 8081. Poort 8080 wordt gebruikt door de server om inkomende HTTP-verzoeken aan de applicatie te dienen, terwijl 8081 wordt gebruikt door de beheerinterface van Dropwizard.

we hebben ook de benodigde Logger en LoggerFactory klassen geïmporteerd om een logger instantie te construeren die we zouden kunnen gebruiken voor onze logging behoeften.

Create REST Resource and API ‘s

wanneer u een Bootstrap-klasse voor toepassingen hebt toegevoegd, kunt u nu REST resources toevoegen die REST API’ s bevatten. In dit voorbeeld, Ik heb gemaakt en employee management applicatie-dus het heeft API ‘ s voor het maken/bijwerken/verwijderen werknemer records. Deze klasse is verantwoordelijk voor het verwerken van HTTP-verzoeken en het genereren van JSON-reacties.

omdat we Jersey in ons classpath hebben, zullen we het gebruiken om REST API ‘ s te bouwen.

voor het imiteren van de DB, heb ik EmployeeDB klasse gemaakt die werknemersrecords en updates in het geheugen opslaat.

Build Resource Representations

representatie is wat de gegevens bevat en geserialiseerd in JSON. Het is model voor rustgevende toepassing. Bij het gebruik van Jersey met Jackson, alles wat je nodig hebt om een resource vertegenwoordiging op te bouwen is – een eenvoudige POJO volgens java bean normen. Jackson construeert de JSON string recursief volgens de getter methoden van elke klasse en hun return type.

elk exemplaar van het java.util.List type zal worden geconverteerd naar een JSON array.

indien nodig kunt u in sommige gevallen voorkomen dat een eigenschap deel uitmaakt van de JSON-representatie door de annotatie @JsonIgnore aan de getter toe te voegen.

validatie van aanvragen

wanneer u PUT en POST aanvragen accepteert, moet u de inhoud van door de gebruiker ingediende entiteiten valideren in de aanvraagtekst. Dropwizard gebruikt hiervoor hibernate validator. Het toevoegen van validatie vereist de volgende stappen.

Verify REST API ‘s

nu we validaties voor REST API’ s hebben gemaakt en toegevoegd, laten we dit testen.

build applicatie uber jar-bestand

> mvn clean package

start applicatie in jetty-server

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

Access URI http://localhost:8080/employees

dit geeft werknemerscollectie en gerelateerde responskoppen terug.

Dropwizard-GET Request Voorbeeld– 1

toegang-URI http://localhost:8080/employees/1

dit retourneert werknemer record met id 1.

Dropwizard-GET Request Voorbeeld– 2

verzonden HTTP PUT http://localhost:8080/employees / 1 met ongeldige aanvraaggegevens

u krijgt validatieberichten.

Dropwizard-Validation Example

Sent HTTP PUT http://localhost:8080/employees / 1 with correct data

Employee record will be updated succes.

Dropwizard-PUT request Example

op dezelfde manier kunt u andere API ’s en scenario’ s testen.

You might also like

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.