Retrofit Kotlin: पूरी गाइड, उदाहरण और उपयोग

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

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

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

Retrofit क्या है और इसकी आवश्यकता क्यों है?

Retrofit, Java और Kotlin के लिए Square कंपनी द्वारा विकसित एक टाइप-सेफ HTTP क्लाइंट है। यह Android इकोसिस्टम में REST API के साथ काम करने के लिए सबसे लोकप्रिय लाइब्रेरी में से एक है। Retrofit डेवलपर्स को आसानी से और सुंदर तरीके से रिमोट सर्वर पर HTTP रिक्वेस्ट करने, JSON रिस्पॉन्स को Kotlin ऑब्जेक्ट्स में और इसके विपरीत स्वचालित रूप से बदलने की सुविधा देता है।

Retrofit की आवश्यकता क्यों है?

  • API के साथ काम को सरल बनाता है: HttpURLConnection या OkHttp के साथ लंबा कोड लिखने के बजाय, आप एनोटेशन के साथ एक इंटरफ़ेस परिभाषित करते हैं, और Retrofit खुद ही इसका कार्यान्वयन जनरेट करता है।
  • स्वचालित सीरियलाइज़ेशन/डीसीरियलाइज़ेशन: कन्वर्टर्स (Gson, Moshi, Kotlinx Serialization) के साथ एकीकरण के कारण, Retrofit स्वचालित रूप से JSON को Kotlin ऑब्जेक्ट्स में बदल देता है।
  • विभिन्न HTTP तरीकों का समर्थन: GET, POST, PUT, DELETE, PATCH, HEAD और OPTIONS।
  • हेडर और पैरामीटर का प्रबंधन: डायनामिक या स्टैटिक हेडर, query-पैरामीटर और path-पैरामीटर आसानी से जोड़ें।
  • एसिंक्रोनस सपोर्ट: Kotlin कोरूटीन (suspend फंक्शन) और Callback इंटरफ़ेस का समर्थन।
  • OkHttp के साथ एकीकरण: Retrofit, OkHttp को HTTP इंजन के रूप में उपयोग करता है, जिससे रिक्वेस्ट इंटरसेप्टर्स (interceptors) की शक्तिशाली सुविधाएं मिलती हैं।

Retrofit उन Android ऐप्स के लिए आदर्श है जो RESTful वेब सेवाओं के साथ इंटरैक्ट करते हैं: सरल मौसम ऐप से लेकर जटिल सोशल नेटवर्क तक।

Kotlin प्रोजेक्ट में Retrofit की स्थापना

Python (जहाँ pip का उपयोग होता है) के विपरीत, Kotlin/Android प्रोजेक्ट्स में डिपेंडेंसी Gradle के माध्यम से प्रबंधित की जाती है। अपने मॉड्यूल (आमतौर पर app) के build.gradle.kts (या build.gradle) फ़ाइल में निम्नलिखित पंक्तियाँ जोड़ें:

// build.gradle.kts (Module :app)
dependencies {
    // मुख्य Retrofit लाइब्रेरी
    implementation("com.squareup.retrofit2:retrofit:2.9.0")
    
    // JSON के लिए कन्वर्टर (Gson)
    implementation("com.squareup.retrofit2:converter-gson:2.9.0")
    
    // वैकल्पिक कन्वर्टर (Moshi)
    // implementation("com.squareup.retrofit2:converter-moshi:2.9.0")
    
    // कोरूटीन सपोर्ट के लिए (suspend फंक्शन)
    implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3")
    
    // OkHttp (आमतौर पर शामिल होता है, लेकिन स्पष्ट रूप से जोड़ सकते हैं)
    implementation("com.squareup.okhttp3:okhttp:4.12.0")
    implementation("com.squareup.okhttp3:logging-interceptor:4.12.0")
}

महत्वपूर्ण: डिपेंडेंसी जोड़ने के बाद, लाइब्रेरी डाउनलोड करने के लिए Android Studio में "Sync Now" पर क्लिक करें।

त्वरित शुरुआत: कोड उदाहरण

आइए एक सरल ऐप बनाएं जो JSONPlaceholder (मुफ्त टेस्ट API) से पोस्ट की सूची प्राप्त करता है।

चरण 1: रिस्पॉन्स के लिए data-क्लास बनाएं

data class Post(
    val userId: Int,
    val id: Int,
    val title: String,
    val body: String
)

चरण 2: API इंटरफ़ेस परिभाषित करें

interface ApiService {
    @GET("posts")
    suspend fun getPosts(): List<Post>
    
    @GET("posts/{id}")
    suspend fun getPostById(@Path("id") postId: Int): Post
}

चरण 3: Retrofit क्लाइंट बनाएं

object RetrofitClient {
    private const val BASE_URL = "https://jsonplaceholder.typicode.com/"
    
    val instance: ApiService by lazy {
        Retrofit.Builder()
            .baseUrl(BASE_URL)
            .addConverterFactory(GsonConverterFactory.create())
            .build()
            .create(ApiService::class.java)
    }
}

चरण 4: Activity या ViewModel में उपयोग करें

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)                    

अनुशंसाएँ