Retrofit Java: पूरी गाइड उदाहरणों के साथ

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

Retrofit Java: Android और Java के लिए Type-safe HTTP क्लाइंट

1. यह क्या है और क्यों ज़रूरी है

Retrofit एक शक्तिशाली और सुंदर Java (और Android) लाइब्रेरी है, जो HTTP API को Java इंटरफ़ेस में बदल देती है। HTTP रिक्वेस्ट बनाने, रिस्पॉन्स प्रोसेस करने और JSON पार्स करने के लिए मैन्युअल रूप से बॉयलरप्लेट कोड लिखने के बजाय, Retrofit यह सब काम आपके लिए करता है। यह आपके Java ऑब्जेक्ट्स को सर्वर पर भेजने के लिए JSON (या अन्य फ़ॉर्मेट) में ऑटोमैटिकली सीरियलाइज़ करता है और सर्वर के रिस्पॉन्स को वापस Java ऑब्जेक्ट्स में डी-सीरियलाइज़ करता है। इससे कोड साफ, पढ़ने में आसान और मेंटेन करने में आसान हो जाता है।

इसकी ज़रूरत क्यों है? कल्पना करें कि आपको एक ऐसा ऐप बनाना है जो REST API (जैसे GitHub API, OpenWeatherMap या आपका अपना सर्वर) से संवाद करता है। Retrofit के बिना, आपको HttpURLConnection या HttpClient जैसी लो-लेवल क्लासेज़ का उपयोग करना होगा, मैन्युअल रूप से URL बनाना होगा, हेडर सेट करने होंगे, एरर कोड हैंडल करने होंगे और JSON पार्स करना होगा। यह न केवल थकाऊ है, बल्कि गलतियों की संभावना भी बढ़ाता है। Retrofit इन समस्याओं को API को डिक्लेरेटिव तरीके से डिस्क्राइब करके हल करता है। आप बस मेथड्स के साथ एक इंटरफ़ेस बनाते हैं, उन्हें एनोटेट करते हैं (जैसे @GET, @POST), और Retrofit खुद इस इंटरफ़ेस का इम्प्लीमेंटेशन जनरेट करता है।

Retrofit Android और Java की दुनिया में HTTP के साथ काम करने का डी-फैक्टो स्टैंडर्ड है। यह OkHttp (नेटवर्किंग के लिए) और Gson/Moshi (JSON सीरियलाइज़ेशन के लिए) के साथ गहराई से इंटीग्रेट होता है। लाइब्रेरी सिंक्रोनस और एसिंक्रोनस रिक्वेस्ट, फ़ाइल अपलोड, ऑथेंटिकेशन, कैशिंग और कई अन्य सुविधाओं को सपोर्ट करती है। अपनी सादगी और लचीलेपन के कारण, Retrofit का उपयोग दुनिया भर में हज़ारों ऐप्स और सर्विसेज़ में किया जाता है।

2. इंस्टॉलेशन

Retrofit Maven Central के माध्यम से वितरित किया जाता है। इसे अपने Java प्रोजेक्ट (जैसे Maven या Gradle के साथ) में उपयोग करने के लिए, संबंधित डिपेंडेंसीज़ जोड़ें। ध्यान दें कि आपको सीरियलाइज़ेशन के लिए एक कन्वर्टर (अक्सर Gson या Moshi) और OkHttp (जिसे Retrofit अंडर-द-हुड उपयोग करता है) की भी आवश्यकता होगी।

Maven (pom.xml)

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

<!-- Gson कन्वर्टर (JSON के लिए) -->
<dependency>
    <groupId>com.squareup.retrofit2</groupId>
    <artifactId>converter-gson</artifactId>
    <version>2.9.0</version>
</dependency>

<!-- OkHttp (आमतौर पर ऑटोमैटिकली आ जाता है, लेकिन वर्ज़न स्पष्ट रूप से सेट किया जा सकता है) -->
<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'
}

महत्वपूर्ण: वर्ज़न पुराने हो सकते हैं। हमेशा आधिकारिक वेबसाइट या Maven Central रिपॉजिटरी पर नवीनतम वर्ज़न चेक करें। यदि आप कोई अन्य कन्वर्टर (जैसे Moshi या Jackson) उपयोग कर रहे हैं, तो converter-gson को संबंधित आर्टिफैक्ट (converter-moshi, converter-jackson) से बदलें।

3. क्विक स्टार्ट — एक न्यूनतम काम करने वाला उदाहरण

आइए एक सरल उदाहरण लिखें जो JSONPlaceholder (टेस्ट REST API) सर्वर से यूज़र्स की लिस्ट प्राप्त करता है।

चरण 1: डेटा मॉडल (POJO) बनाएं

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

    // गेटर्स (Gson के लिए अनिवार्य)
    public int getId() { return id; }
    public String getName() { return name; }
    public                    

अनुशंसाएँ