Tutoriel Dropwizard – Exemple Hello World

Dropwizard est un framework Java open source pour le développement rapide des API REST. Dropwizard est une sorte d’écosystème qui contient toutes les dépendances (telles que Jersey, jackson ou jetty) regroupées en un seul package ou peuvent être ajoutées en tant que module séparé. Si vous n’utilisez pas dropwizard, vous finirez par collecter vous-même toutes les dépendances et il en résulte souvent des problèmes de chargement de classe en raison d’une incompatibilité de version entre les différentes bibliothèques java. Dropwizard résout ce problème pour vous et rassemble des bibliothèques stables et matures en un package simple et léger qui vous permet de vous concentrer sur la réalisation des choses. Apprenons à utiliser dropwizard pour créer des API REST – étape par étape.

Table of ContentsLibraries included inside dropwizardSetup dropwizard with mavenCreate REST Application ClassCreate REST Resource and APIsBuild Resource RepresentationsRequest ValidationVerify REST APIs
Vous aurez besoin de Java 8 pour exécuter les exemples donnés dans ce code qui sont développés à l’aide de dropwizard version 1.0.0.

Bibliothèques incluses dans dropwizard

Une fois que vous incluez dropwizard dans votre projet, vous obtenez les bibliothèques suivantes ajoutées à votre chemin de classe.

  • Jersey – Pour créer des applications Web RESTful.
  • Jetty – Dropwizard utilise la bibliothèque HTTP Jetty pour intégrer un serveur HTTP directement dans votre projet.
  • Jackson – Pour la conversion d’objet vers / depuis JSON. Il permet d’exporter vos modèles de domaine directement avec des annotations JAXB.
  • Goyave – structures de données immuables hautement optimisées pour accélérer le développement.
  • Logback et SLF4j – pour une journalisation performante et flexible.
  • Validateur Hibernate – un cadre déclaratif facile pour valider les entrées utilisateur et générer des messages d’erreur utiles et conviviaux pour i18n.
  • Apache HttpClient – Pour les interactions de bas et de haut niveau avec d’autres services Web.
  • JDBI – le moyen le plus simple d’utiliser une base de données relationnelle avec Java.
  • Liquidbase – pour contrôler votre schéma de base de données tout au long de votre cycle de développement et de publication.
  • Systèmes de modèles FreeMarker.
  • Moustache – systèmes de modèles simples pour des applications plus orientées vers l’utilisateur.
  • Joda Time – bibliothèque très complète et saine pour gérer les dates et les heures.

Configurer dropwizard avec maven

Notre projet sera basé sur l’archétype maven-archetype-quickstart. Vous pouvez créer le projet à l’aide de l’invite de commande ou utiliser eclipse pour créer un projet java maven simple.

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

Le projet généré aura également un fichier pom.xml. Ajoutez-y une dépendance dropwizard.

Cela téléchargera tous les fichiers jar et les ajoutera dans votre chemin de classe. Pour ajouter le support de build et de package à notre projet, nous utiliserons le plugin maven-shade, qui nous permettra d’empaqueter complètement notre projet, ainsi que ses dépendances, dans un seul fichier JAR autonome (JAR Fat / Uber) qui peut être distribué et exécuté tel quel.

pom complet.le fichier xml ressemble à ceci.

Créer une classe d’application REST

La classe d’application est le point d’entrée de toute application dropwizard. Il doit étendre la classe io.dropwizard.Application et implémenter les méthodes initialize(Bootstrap<Configuration>) et run(Configuration, Environment). Ils préparent l’environnement d’exécution de l’application.

Pour appeler la méthode run, vous devrez avoir la méthode public static void main(String args) {}, qui sera invoquée par la commande java -jar lorsque vous exécutez l’application en tant que fichier jar.

Pour exécuter le fichier JAR, nous ajoutons l’argument server à la commande qui démarre le serveur HTTP intégré (Jetty) pour exécuter notre service.

java -jar target\DropWizardExample.jar server

Le serveur Jetty intégré de Dropwizard essaiera de se lier aux ports 8080 et 8081 par défaut. Le port 8080 est utilisé par le serveur afin de servir les requêtes HTTP entrantes à l’application, tandis que 8081 est utilisé par l’interface d’administration de Dropwizard.

Nous avons également importé les classes Logger et LoggerFactory nécessaires afin de construire une instance d’enregistreur que nous pourrions utiliser pour nos besoins de journalisation.

Créer une ressource REST et des API

Maintenant, lorsque vous avez ajouté une classe d’amorçage d’application, vous pouvez maintenant ajouter des ressources REST contenant des API REST. Dans cet exemple, j’ai créé une application de gestion des employés – elle dispose donc d’API pour créer / mettre à jour / supprimer des enregistrements d’employés. Cette classe sera responsable du traitement des requêtes HTTP et de la génération des réponses JSON.

Comme nous avons Jersey dans notre chemin de classe, nous l’utiliserons pour créer des API REST.

Pour imiter la base de données, j’ai créé la classe EmployeeDB qui stocke les enregistrements et les mises à jour des employés en mémoire.

Créer des représentations de ressources

La représentation est ce qui contient les données et est sérialisée en JSON. C’est un modèle pour une application reposante. Lorsque vous utilisez Jersey avec Jackson, tout ce dont vous avez besoin pour créer une représentation de ressource est – un simple POJO suivant les normes java bean. Jackson construit récursivement la chaîne JSON en fonction des méthodes getter de chaque classe et de leur type de retour.

Toute instance du type java.util.List sera convertie en un tableau JSON.

Si nécessaire dans certains cas, vous pouvez empêcher une propriété de faire partie de la représentation JSON en ajoutant l’annotation @JsonIgnore à son getter.

Validation de la requête

Lorsque vous acceptez les requêtes PUT et POST, vous devez valider le contenu de l’entité soumise par l’utilisateur dans le corps de la requête. Dropwizard utilise le validateur hibernate à cette fin. L’ajout d’une validation nécessite les étapes suivantes.

Vérifiez les API REST

Maintenant, lorsque nous avons créé et ajouté des validations pour les API REST, testons cela.

Créer un fichier jar uber de l’application

> mvn clean package

Démarrer l’application dans le serveur jetty

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

URI d’accès http://localhost:8080/employees

Cela renverra la collection des employés et les en-têtes de réponse associés.

Dropwizard – Exemple de requête GET – 1

URI D’Accès http://localhost:8080/employees/1

Cela renverra le dossier de l’employé avec l’id 1.

Dropwizard – Exemple de requête GET – 2

HTTP PUT http://localhost:8080/employees/1 envoyé avec des données de requête non valides

Vous obtiendrez des messages de validation.

Dropwizard – L’exemple de validation

HTTP PUT http://localhost:8080/employees/1 envoyé avec des données correctes

L’enregistrement de l’employé sera mis à jour avec succès.

Exemple de requête Dropwizard–PUT

De la même manière, vous pouvez tester d’autres API et scénarios.

You might also like

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.