Dropwizard? Der kleine Zauberer für REST? – Part I

Wir wollen Schritt für Schritt zuerst einen Dropwizard REST Service bereitstellen und parallel eine PhoneGap Applikation für Android und iOS erstellen. Aufgabe des Projekts wird sein dem Nutzer in regelmäßigen Abständen Push Nachrichten zu senden. Der Kenner wird sich fragen: Warum um Gotteswillen brauche ich dann einen REST Service? Ganz einfach: Wir wollen dem Nutzer die Möglichkeit geben einige Einstellungen vorzunehmen und natürlich auch eine Administrationsoberfläche gegen den Service entwickeln.

Was brauchen wir? 

Vorneweg brauchen wir einige grundlegende Dinge:

  • Java JDK
  • Maven
  • IDE (Ich empfehle Netbeans, da ich es im Verlauf des Tutorials auch nutze)

Auf die Installation von Java, Maven und Netbeans werde ich nicht weiter eingehen. Dafür gibt’s genug Hilfen im Netz und ich denke jeder, der sich mit Dropwizard auseinandersetzen will, sollte dies alleine hin bekommen. Seht es also als Einstellungskriterium für dieses Tutorial.

Wie startet man?

Nachdem wir es geschafft haben uns die notwendige Software zu installieren, legen wir ein Maven Projekt an. Ich habe es mir komfortabel über Netbeans->Neues Projekt->Maven->Java Application anlegen lassen. Wer es von Hand machen will – so muss es aussehen:

example
 |-- src
 |    |-- main
 |    |    |-- java 
 |    |    +-- resources    
 |    +-- test
 |         +-- java
 +-- pom.xml

Ich denke ich muss nicht sagen, dass es absoluter Unsinn ist, wenn man so etwas von Hand macht. Arbeit die wir uns sparen können, sparen wir uns auch! So bleibt uns mehr Zeit für die wichtigen Dinge im Leben. Nachdem das Projekt angelegt ist müssen wir dafür sorgen, dass Dropwizard verfügbar ist. pom.xml sollte im Moment in etwa so aussehen:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>de.trollr</groupId>
    <artifactId>example</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>

    <name>example</name>
    <url>http://maven.apache.org</url>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <dependencies>
        ...
    </dependencies>
</project>

Hier müssen wir bei den Dependencies Dropwizard hinzufügen:

<dependency>
     <groupId>com.yammer.dropwizard</groupId>
     <artifactId>dropwizard-core</artifactId>
     <version>0.6.2</version>
</dependency>

Wenn man das Projekt nun baut (Build) wird zuerst im lokalen Maven Repository geschaut ob die Dependency schon existiert. Sonst wird sie aus dem zentralen Maven Repository heruntergeladen. Dies kann – je nachdem wie viel Dependencies man hat – einige Zeit dauern. Das Ganze geschieht aber zum Glück nur einmalig; es sei denn man löscht die bereits heruntergeladenen Bibliotheken. Die erste Hürde ist geschafft! Aber Zeit für eine ausgiebige Siegesfeier haben wir noch nicht – weiter geht’s…

Da wir im späteren Verlauf des Tutorials direkt eine Datenbank nutzen wollen fügen wir noch zwei weitere Dependencies in die pom.xml hinzu, damit wir auch Hibernate und PostgresSQL nutzen können.

<dependency>
   <groupId>com.yammer.dropwizard</groupId>
   <artifactId>dropwizard-hibernate</artifactId>
   <version>0.6.2</version>
</dependency>
<dependency>
   <groupId>postgresql</groupId>
   <artifactId>postgresql</artifactId>
   <version>9.1-901.jdbc4</version>
</dependency>

Das wars fürs erste. Wir haben ein lauffähiges Projekt. Weiter gehts in Part II

Teilen Sie diesen Beitrag

Das könnte dich auch interessieren …

Eine Antwort

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Durch die weitere Nutzung der Seite stimmen Sie der Verwendung von Cookies zu. Weitere Informationen

Die Cookie-Einstellungen auf dieser Website sind auf "Cookies zulassen" eingestellt, um das beste Surferlebnis zu ermöglichen. Wenn du diese Website ohne Änderung der Cookie-Einstellungen verwendest oder auf "Akzeptieren" klickst, erklärst du sich damit einverstanden.

Schließen