Retrofit für Java: Type-safe HTTP-Client für Android und Java
1. Was ist Retrofit und warum braucht man es?
Retrofit ist eine leistungsstarke und elegante Bibliothek für Java (und Android), die HTTP-APIs in ein Java-Interface verwandelt. Anstatt mühsam Boilerplate-Code für HTTP-Anfragen, Antwortverarbeitung und JSON-Parsing zu schreiben, erledigt Retrofit all diese Arbeit für Sie. Es serialisiert Ihre Java-Objekte automatisch in JSON (oder ein anderes Format) für den Server und deserialisiert Serverantworten zurück in Java-Objekte. Das macht den Code sauber, lesbar und leicht wartbar.
Warum braucht man es? Stellen Sie sich vor, Sie müssen eine App entwickeln, die mit einer REST-API kommuniziert (z. B. GitHub API, OpenWeatherMap oder Ihr eigener Server). Ohne Retrofit müssten Sie Low-Level-Klassen wie HttpURLConnection oder HttpClient verwenden, URLs manuell erstellen, Header setzen, Fehlercodes behandeln und JSON parsen. Das ist nicht nur mühsam, sondern auch fehleranfällig. Retrofit löst diese Probleme, indem es eine deklarative Möglichkeit zur Beschreibung von APIs bietet. Sie erstellen einfach ein Interface mit Methoden, versehen diese mit Annotationen (z. B. @GET, @POST), und Retrofit generiert automatisch die Implementierung dieses Interfaces.
Retrofit ist der De-facto-Standard für HTTP in der Android- und Java-Welt. Es integriert sich nahtlos mit OkHttp (für effiziente Netzwerkkommunikation) und Gson/Moshi (für JSON-Serialisierung). Die Bibliothek unterstützt synchrone und asynchrone Anfragen, Datei-Uploads, Authentifizierung, Caching und viele weitere Funktionen. Dank seiner Einfachheit und Flexibilität wird Retrofit in tausenden Apps und Diensten weltweit eingesetzt.
2. Installation
Retrofit wird über Maven Central verteilt. Um es in Ihrem Java-Projekt zu verwenden (z. B. mit Maven oder Gradle), fügen Sie die entsprechenden Abhängigkeiten hinzu. Beachten Sie, dass Sie auch einen Konverter für die Serialisierung (meistens Gson oder Moshi) und OkHttp benötigen (das Retrofit unter der Haube verwendet).
Maven (pom.xml)
<!-- Retrofit -->
<dependency>
<groupId>com.squareup.retrofit2</groupId>
<artifactId>retrofit</artifactId>
<version>2.9.0</version>
</dependency>
<!-- Gson-Konverter (für JSON) -->
<dependency>
<groupId>com.squareup.retrofit2</groupId>
<artifactId>converter-gson</artifactId>
<version>2.9.0</version>
</dependency>
<!-- OkHttp (wird normalerweise automatisch gezogen, kann aber explizit angegeben werden) -->
<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'
}
Wichtig: Versionen können veralten. Überprüfen Sie immer die aktuellen Versionen auf der offiziellen Website oder im Maven Central Repository. Wenn Sie einen anderen Konverter verwenden (z. B. Moshi oder Jackson), ersetzen Sie converter-gson durch das entsprechende Artefakt (converter-moshi, converter-jackson).
3. Schnellstart – ein minimales funktionierendes Beispiel
Schreiben wir ein einfaches Beispiel, das eine Liste von Benutzern vom JSONPlaceholder-Server (ein Test-REST-API) abruft.
Schritt 1: Erstellen Sie ein Datenmodell (POJO)
// User.java
public class User {
private int id;
private String name;
private String username;
private String email;
// Getter (erforderlich für Gson)
public int getId() { return id; }
public String getName() { return name; }
public Auch in der Bibliothek
Arbeit mit S3 und Cloud-Speichern in Swift (iOS/macOS): Bibliothek AWSS3
Arbeit mit YAML in Node.js: Bibliotheken js-yaml und yaml
RapidJSON C++: Komplettanleitung mit Beispielen
PDF-Generierung in Swift (iOS/macOS): Überblick über Tools und Beispiele
Koin — Dependency Injection Container für Kotlin