Aller au contenu principal

Développer un serveur Spring Boot Java

Avant la séance

Explorez le code du serveur de l'application

Vous pouvez également explorer la documentation de Spring Boot.

  • utiliser spring initializr pour créer un projet
  • ajouter un controleur
  • regarder les recettes
  • démarrer le serveur
  • déboquer le serveur

Recettes à faire:

  • créer un serveur
  • ajouter un contrôleur en get
  • définir un service et l'injecter
  • écrire des tests
Séance 1

Nous allons montrer comment partir le serveur. Comment mettre un point d'arrêt. À quel endroit est le code correspondant aux différentes URLs.

Nous allons voir également comment envoyer des requêtes au serveur avec le logiciel Postman.

Séance 2

Tu devras avancer tes exercices sur les serveurs. Tu devrais avoir programmé au moins un contrôleur.

Séance 3

Tu complètes tes exercices. Tu devrais commencer ton

Séance 4

Nous allons montrer comment partir le serveur. Comment mettre un point d'arrêt. À quel endroit est le code correspondant aux différentes URLs.

Nous allons voir également comment envoyer des requêtes au serveur avec le logiciel Postman.

Exercices de la semaine

Exercice démarrer un serveur

  1. Créez un projet Spring Boot avec Spring Initializr
  2. En vous inspirant de la recette XYZ ajoutez un contrôleur qui retourne une chaîne de caractères
  3. Utiliser le navigateur pour accéder à l'adresse http://localhost:8080/

Exercice Post et PostMan

  • en suivant la recette Spring Boot XYZ, ajoute un controleur sur l'url "/prout/envoyer" en méthode Post
  • on souhaite récupérer un paramètre taille entier dans la query ("/prout/envoyer?taille=150") optionnel
  • une string texte est envoyée dans le corps (body) de la requête

Le tout renvoie texte répété autant de fois que nécessaire pour atteindre taille. Par exemple:

  • texte est "pipo"
  • taille vaut 10
  • le contrôleur renvoie la string "pipopipopi"

Pour tester votre code, utiliser Postman pour déclencher le contrôleur et valider votre code

Exercice calcul et tests

Dans cet exercice, on veut:

  • que tu montes un serveur dans un dossier CalculServeur
  • que tu écrives une classe de service qui sera injectée dans le contrôleur avec une méthode
public BigInteger fibonacci(int n){} 
  • que tu écrives des tests unitaires pour cette méthode: on s'attend à ce que ça torche même si n est dans les 1000-2000
  • que tu implantes un contrôleur qui prend n en paramètre et renvoie le nième nombre de Fibonacci (tu chercheras comment calculer ce nombre)
  • que tu testes ton contrôleur avec Postman
  • l'url doit être /fibo/10 pour 10 par exemple

Exercice toutes les méthodes

Dans cet exercice, on veut:

  • que tu montes un serveur dans un dossier CalculMethodes
  • que tu implantes une méthode dans ton contrôleur pour chaque méthode HTTP
    • un GET sur l'url "/api/chose" qui renvoit une liste de 10 choses (10 string)
    • un POST sur l'url "/api/chose" qui ajoute une chose à la liste
    • un PUT sur l'url "/api/chose/{id}" qui ne fait rien
    • un DELETE sur l'url "/api/chose" qui vide la liste
  • Valide que chaque appel est fonctionnel avec POSTMAN

Exercice de compréhension

Etant donné le code suivant pour un contrôleur Spring Boot

@Controller
public class ComprehensionController {

int i = 0;
static int j = 0;

@GetMapping(value = "/incremente")
public @ResponseBody String incremente() {
i++;
j++;
return i + " " + j;
}

@GetMapping(value = "/incremente/{valeur}")
public @ResponseBody String incremente(@PathVariable int valeur) {
i = i + valeur;
j = j + valeur;
return i + " " + j;
}

@GetMapping(value = "/consulte")
public @ResponseBody String consulte() {
return i + " " + j;
}
}

Dans un fichier HTTP-comprehension.md et sans lancer le serveur, indiquez ce qui sera affiché dans le navigateur après chaque requête si on appelle les URLs suivantes:

Ensuite tu peux programmer un serveur avec ce contrôleur pour valider tes réponses. S'il y a des différences, n'hésite pas à:

  • explorer avec le débogueur côté serveur pour mieux voir ce qui se passe
  • demander au prof s'il reste des éléments mystérieux

👨‍🎓👨‍🎓 Exercice Chic Type (interaction avec Android et Retrofit)

Le projet suivant a un problème. Votre mission sera de trouver le problème et de le corriger.

Lorsqu'on appuie sur le bouton "Obtenir un nombre aléatoire", l'application Android fournie effectue un appel réseau au web service qui se trouve à l'adresse suivante : https://fourn6-mobile-prof.onrender.com/exos/chic/type/. Le nombre aléatoire retourné par le web service devrait s'afficher dans un champ texte.

  1. Dans postman, effectuez une requête vers le web service. Notez le type de donnée qui est dans le corps de la réponse.
  2. Ouvrez l'application Android fournie dans Android Studio. Essayez d'appuyer sur le bouton.
  3. Mettez des breakpoint et consultez le logcat pour tenter de comprendre pourquoi votre application n'arrive pas à traiter le nombre retourné par le web service.
  4. Effectuez un correctif pour que l'application fonctionne correctement. Montrez votre correctif à votre enseignant.

ChicType

👨‍🎓👨‍🎓 Exercice Postman

En roulant le serveur KickMyB, vous devez préparer un ensemble de requêtes avec postman pour créer un compte, accéder à la liste des tâches de l'utilisateur, créer une tâche et mettre à jour une tâche.