Kotlin में API: REST, GraphQL और gRPC — REST से माइक्रोसर्विसेज तक

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

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

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

Kotlin और API: आधुनिक डेवलपमेंट के तीन स्तंभ

\n\n

क्या आपने कभी सोचा है कि कुछ ऐप्स फ्लैगशिप फोन पर भी धीमे क्यों चलते हैं, जबकि अन्य बेहद तेज़? राज़ अक्सर हार्डवेयर में नहीं, बल्कि सर्वर से उनके संवाद करने के तरीके में छिपा होता है। अगर आप Kotlin में लिख रहे हैं — चाहे वह Ktor पर बैकएंड हो या Android ऐप — देर-सबेर आपको चुनना होगा: REST, GraphQL या gRPC?

\n\n

PythonLib पर हम टेक्नोलॉजी को गहराई से समझना पसंद करते हैं। आज हम Kotlin में API के तीन तरीकों को विस्तार से समझेंगे। कोई बकवास नहीं: सिर्फ कोड, तुलना और वास्तविक उदाहरण। चलिए शुरू करते हैं!

\n\n

Kotlin में REST API: क्लासिक जो कभी पुराना नहीं होता

\n\n

REST एक ब्लैक सूट की तरह है: हर जगह उपयुक्त, सरल और समझने में आसान। Kotlin में REST के लिए दो मुख्य विकल्प हैं: Ktor (सर्वर साइड) और Retrofit (क्लाइंट साइड)।

\n\n

Ktor पर सर्वर: 5 मिनट में API बनाएं

\n\n

Ktor JetBrains द्वारा विशेष रूप से Kotlin के लिए बनाया गया फ्रेमवर्क है। यह एसिंक्रोनस, हल्का और अनावश्यक डिपेंडेंसी नहीं थोपता।

\n\n
// build.gradle.kts\nimplementation("io.ktor:ktor-server-netty:2.3.7")\nimplementation("io.ktor:ktor-server-content-negotiation:2.3.7")\nimplementation("io.ktor:ktor-serialization-kotlinx-json:2.3.7")
\n\n

अब सर्वर कोड:

\n\n
import io.ktor.server.engine.*\nimport io.ktor.server.netty.*\nimport io.ktor.server.routing.*\nimport io.ktor.server.response.*\nimport io.ktor.serialization.kotlinx.json.*\nimport io.ktor.server.plugins.contentnegotiation.*\nimport kotlinx.serialization.Serializable\n\n@Serializable\ndata class User(val id: Int, val name: String, val email: String)\n\nfun main() {\n    embeddedServer(Netty, port = 8080) {\n        install(ContentNegotiation) {\n            json()\n        }\n        routing {\n            get("/api/users") {\n                val users = listOf(\n                    User(1, "अन्ना", "anna@example.com"),\n                    User(2, "बोरिस", "boris@example.com")\n                )\n                call.respond(users)\n            }\n            get("/api/users/{id}") {\n                val id = call.parameters["id"]?.toIntOrNull()\n                if (id != null) {\n                    call.respond(User(id, "टेस्ट", "test@example.com"))\n                } else {\n                    call.respondText("गलत ID", status = io.ktor.http.HttpStatusCode.BadRequest)\n                }\n            }\n        }\n    }.start(wait = true)\n}
\n\n

यह कोड दो एंडपॉइंट के साथ एक पूर्ण Kotlin REST API है। Ktor kotlinx.serialization की मदद से डेटा को JSON में बदलता है।

\n\n

Retrofit पर क्लाइंट: किसी भी API से जुड़ें

\n\n

Retrofit Android डेवलपमेंट का डी-फैक्टो स्टैंडर्ड है। यह कोरूटीन की बदौलत Kotlin के साथ पूरी तरह काम करता है।

\n\n
// build.gradle.kts\nimplementation("com.squareup.retrofit2:retrofit:2.9.0")\nimplementation("com.squareup.retrofit2:converter-gson:2.9.0")\nimplementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3")
\n\n

इंटरफ़ेस घोषित करें:

\n\n
interface ApiService {\n    @GET("users")\n    suspend fun getUsers(): List<User>\n\n    @GET("users/{id}")\n    suspend fun getUser(@Path("id") userId: Int): User\n\n    @POST("users")\n    suspend fun createUser(@Body user: User): User\n}
\n\n

क्लाइंट बनाएं और रिक्वेस्ट करें:

\n\n
val retrofit = Retrofit.Builder()\n    .baseUrl("https://api.example.com/")\n    .addConverterFactory(GsonConverterFactory.create())\n    .build()\n\nval service = retrofit.create(ApiService::class.java)\n\n// कोरूटीन में\nGlobalScope.launch {\n    val users = service.getUsers()\n    println(users)\n}
\n\n

REST के फायदे: सरलता, HTTP के ज़रिए कैशिंग, बड़ा समुदाय।
\nनुकसान: over-fetching और under-fetching — अक्सर ज़रूरत से ज़्यादा या कम डेटा मिलता है।

ब्लॉग

पुस्तक अनुशंसाएँ