03 Maven
Apache Maven est un outil pour la gestion et l’automatisation de production des projets logiciels Java en général et Java EE en particulier.
Dans ce TP nous allons découvrir sa mise en oeuvre et son utilisation.
Création du projet
Créer un nouveau projet java avec maven via netbeans. Remarquer la différence de structure.
POM.xml
POM pour Project Object Model, chaque projet est configuré via un fichier pom.xml
qui contient les informations nécessaires à Maven pour traiter le projet :
- nom du projet ;
- numéro de version ;
- dépendances vers d’autres projets ;
- bibliothèques nécessaires à la compilation ;
- noms des contributeurs ;
- ...
Vous devriez avoir quelque chose de semblable à cet extrait:
<?xml version="1.0" encoding="UTF-8"?>
<project ..>
..
<dependencies>
</dependencies>
<build>
</build>
</project>
Création du main
Une java application with maven ne fournit pas de main
par défaut, assurez vous de le créer et que votre application fonctionne avant de passer à la suite.
Ajout d'une dépendance
Nous allons tenter de développer une (mini/nano) première application (un peu) utile en java.
Notre programme appellera une API qui va récupérer le résultat de la requête en JSON (JavaScript Object Notation) pour l’afficher dans notre console.
Les API sur Internet
Les API sont un moyen d’accéder aux données d’un site sans avoir l’autorisation d’accéder directement à la base de données. Il y a beaucoup de portails sécurisés permettant à vos applications web de manipuler les données renvoyées par ces sites.
L’exemple parfait est Twitter. Elle permet de lire la timeline d’une personne en particulier, de rechercher des statuts à partir d’un mot clé, de modifier les paramètres de votre compte, etc.
Pourquoi choisir JSON ?
Vous pouvez utiliser les API avec de nombreux langages et retourner les données de plusieurs façons. L’une d’elles est le JSON (JavaScript Object Notation). C’est un format de données léger, facile à lire et à écrire et compatible avec pas mal de langages de développement.
Sa structure est composée d’objets et de tableaux. Sa flexibilité fait de JSON le parfait candidat pour retourner des données.
Utilisation de unirest
D'abord il convient d'installer unirest.
Puis dans notre main
nous pouvons appeller l'api suivante https://allosaurus.delahayeyourself.info/api/books:
GetRequest getResponse = Unirest.get("https://allosaurus.delahayeyourself.info/api/books/");
JsonNode body = getResponse.asJson().getBody();
System.out.println(body());
System.out.println(getResponse.asJson().getStatus());
Un exemple de parcours:
JSONArray books = body.getArray();
for(int i = 0; i < books.length(); i++)
{
JSONObject book = books.getJSONObject(i);
System.out.println(book.getString("title"));
System.out.println(book.getInt("year"));
}
- Modifiez votre
main
pour afficher chaque élément (titre, auteur, etc.) retourné par l'API, - Essayez de récupérer l'élément JSON à l'url suivante: /api/books/a-game-of-thrones comme précédemment,
- Y'a t'il un problème ? Comment corriger ce problème ?
Une api de dinosaures
En utilisant l'api suivante https://allosaurus.delahayeyourself.info/api/dinosaurs:
- Créer une classe
DinosaursAPI
permettant de récupérer l'ensemble des dinosaures; - Chaque dinosaure devra être injecter dans un objet java (une instance de la classe
Dinosaur
); - Créer une seconde méthode qui permet de récupérer plus d'information sur un dinosaure précis (sélection via un menu console ?).