Retrofit Java : guide complet avec exemples concrets

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Retrofit pour Java : client HTTP Type-safe pour Android et Java

1. Qu'est-ce que Retrofit et pourquoi l'utiliser ?

Retrofit est une bibliothèque puissante et élégante pour Java (et Android) qui transforme une API HTTP en une interface Java. Au lieu d'écrire manuellement du code répétitif pour créer des requêtes HTTP, traiter les réponses et analyser le JSON, Retrofit fait tout ce travail à votre place. Il sérialise automatiquement vos objets Java en JSON (ou un autre format) pour les envoyer au serveur et désérialise les réponses du serveur en objets Java. Cela rend le code propre, lisible et facile à maintenir.

Pourquoi en avez-vous besoin ? Imaginez que vous devez développer une application qui communique avec une API REST (par exemple, l'API GitHub, OpenWeatherMap ou votre propre serveur). Sans Retrofit, vous seriez obligé d'utiliser des classes de bas niveau comme HttpURLConnection ou HttpClient, de construire manuellement les URL, de définir les en-têtes, de gérer les codes d'erreur et d'analyser le JSON. C'est non seulement fastidieux, mais aussi source d'erreurs. Retrofit résout ces problèmes en offrant une manière déclarative de décrire une API. Il vous suffit de créer une interface avec des méthodes, de les annoter (par exemple, @GET, @POST), et Retrofit génère lui-même l'implémentation de cette interface.

Retrofit est la norme de facto pour travailler avec HTTP dans l'écosystème Android et Java. Il s'intègre étroitement avec OkHttp (pour une gestion réseau efficace) et Gson/Moshi (pour la sérialisation JSON). La bibliothèque prend en charge les requêtes synchrones et asynchrones, le téléchargement de fichiers, l'authentification, la mise en cache et de nombreuses autres fonctionnalités. Grâce à sa simplicité et sa flexibilité, Retrofit est utilisé dans des milliers d'applications et de services dans le monde entier.

2. Installation

Retrofit est distribué via Maven Central. Pour l'utiliser dans votre projet Java (par exemple, avec Maven ou Gradle), ajoutez les dépendances correspondantes. Notez que vous aurez également besoin d'un convertisseur pour la sérialisation (le plus souvent Gson ou Moshi) et d'OkHttp (que Retrofit utilise en interne).

Maven (pom.xml)

<!-- Retrofit -->
<dependency>
    <groupId>com.squareup.retrofit2</groupId>
    <artifactId>retrofit</artifactId>
    <version>2.9.0</version>
</dependency>

<!-- Convertisseur Gson (pour JSON) -->
<dependency>
    <groupId>com.squareup.retrofit2</groupId>
    <artifactId>converter-gson</artifactId>
    <version>2.9.0</version>
</dependency>

<!-- OkHttp (généralement inclus automatiquement, mais vous pouvez spécifier une version) -->
<dependency>
    <groupId>com.squareup.okhttp3</groupId>
    <artifactId>okhttp</artifactId>
    <version>4.12.0</version>
</dependency>

Gradle (build.gradle)

dependencies {
    implementation 'com.squareup.retrofit2:retrofit:2.9.0'
    implementation 'com.squareup.retrofit2:converter-gson:2.9.0'
    implementation 'com.squareup.okhttp3:okhttp:4.12.0'
}

Important : Les versions peuvent devenir obsolètes. Vérifiez toujours les versions actuelles sur le site officiel ou dans le dépôt Maven Central. Si vous utilisez un autre convertisseur (par exemple, Moshi ou Jackson), remplacez converter-gson par l'artefact correspondant (converter-moshi, converter-jackson).

3. Démarrage rapide — exemple minimal fonctionnel

Écrivons un exemple simple qui récupère une liste d'utilisateurs depuis le serveur JSONPlaceholder (une API REST de test).

Étape 1 : Créez un modèle de données (POJO)

// User.java
public class User {
    private int id;
    private String name;
    private String username;
    private String email;

    // Getters (obligatoires pour Gson)
    public int getId() { return id; }
    public String getName() { return name; }
    public                    

Recommendations