🛢️Parcours Fioul GroupéJava · Chapitre 21
Accueil › Java › Chapitre 21
Chapitre 21 / 22

Réseau et sérialisation

Faire communiquer des programmes : sockets, requêtes HTTP et transformation d'objets en flux (JSON, sérialisation) — les fondations de toute API.

1 Notion

Le client HTTP

Depuis Java 11, un client HTTP moderne est intégré : c'est ainsi qu'un programme consomme une API REST (comme le fera l'appli, ou un test d'intégration de l'API fioul).

import java.net.http.*;
import java.net.URI;

HttpClient client = HttpClient.newHttpClient();
HttpRequest req = HttpRequest.newBuilder()
    .uri(URI.create("https://api.exemple.fr/campagnes")).build();
HttpResponse<String> rep = client.send(req, HttpResponse.BodyHandlers.ofString());
System.out.println(rep.body());   // du JSON
2 Notion

Sérialiser : objets ↔ flux

Sérialiser, c'est transformer un objet en octets/texte pour le stocker ou l'envoyer ; désérialiser, l'inverse. En pratique moderne, on sérialise en JSON (avec Jackson).

// avec Jackson (utilisé par Spring)
ObjectMapper mapper = new ObjectMapper();
String json = mapper.writeValueAsString(campagne);      // objet → JSON
Campagne c = mapper.readValue(json, Campagne.class);    // JSON → objet
Sécurité — la sérialisation Java native (Serializable) est une source classique de failles : on privilégie JSON, et on ne désérialise jamais des données non fiables.
🛢️ Sur le projet Fioul Groupé

L'API fioul renvoie ses campagnes en JSON : la sérialisation objet↔JSON (Jackson) est exactement ce que fait Spring pour transformer un Campagne en réponse HTTP, et ce que Flutter parse à l'écran. Comprendre le mécanisme ici éclaire toute la chaîne du projet.

À retenir
← Chapitre 20