Kotlin पर GraphQL: सर्वर-साइड डेवलपमेंट के लिए लाइब्रेरी और टूल्स का अवलोकन

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

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

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

Kotlin पर GraphQL: लाइब्रेरी और टूल्स का पूर्ण अवलोकन



GraphQL API के लिए एक क्वेरी भाषा और आपके मौजूदा डेटा के साथ इन क्वेरी को निष्पादित करने के लिए एक रनटाइम वातावरण है। यह क्लाइंट को ठीक उसी डेटा का अनुरोध करने की क्षमता प्रदान करता है जिसकी उन्हें आवश्यकता है, जो इसे REST का एक शक्तिशाली विकल्प बनाता है। Kotlin इकोसिस्टम में GraphQL बैकएंड बनाने के लिए कई परिपक्व लाइब्रेरी मौजूद हैं। इस लेख में, हम मुख्य टूल्स, उनके सिंटैक्स और उपयोग के उदाहरणों का विस्तार से विश्लेषण करेंगे।



GraphQL के लिए Kotlin क्यों?

Kotlin, JVM पर चलने वाली एक स्थिर रूप से टाइप की गई भाषा होने के नाते, टाइप-सेफ GraphQL स्कीमा बनाने के लिए उपयुक्त है। Kotlin कंपाइलर कोड लिखने के चरण में त्रुटियों से बचने में मदद करता है, और अभिव्यंजक सिंटैक्स कोड को स्वच्छ और संक्षिप्त बनाता है। Kotlin में GraphQL के साथ काम करने के लिए मुख्य लाइब्रेरी में शामिल हैं:

  • graphql-kotlin (Expedia Group द्वारा) — सबसे लोकप्रिय लाइब्रेरी, जो Spring Boot के साथ गहराई से एकीकृत है।
  • KGraphQL — सरल कॉन्फ़िगरेशन और न्यूनतम API पर जोर देने वाला एक विकल्प।
  • Apollo Kotlin — Android और KMP के लिए क्लाइंट लाइब्रेरी, लेकिन सर्वर क्षमताएं भी प्रदान करती है।


graphql-kotlin लाइब्रेरी

graphql-kotlin Kotlin पर GraphQL सर्वर बनाने के लिए लाइब्रेरी का एक सेट है। मुख्य दृष्टिकोण स्कीमा के स्वचालित जनरेशन के लिए एनोटेशन और data-क्लास का उपयोग करना है।



स्थापना

build.gradle.kts में निर्भरता जोड़ें:

dependencies {    implementation("com.expediagroup:graphql-kotlin-spring-server:7.0.0")    implementation("com.expediagroup:graphql-kotlin-schema-generator:7.0.0")}


उदाहरण: एक सरल क्वेरी

एक data-क्लास और रिज़ॉल्वर परिभाषित करें:

import com.expediagroup.graphql.server.operations.Query

data class User(val id: Int, val name: String, val email: String)

class UserQuery : Query { fun getUser(id: Int): User { // डेटाबेस से प्राप्त करने का अनुकरण return User(id = id, name = "Alice", email = "alice@example.com") }}


graphql-kotlin स्वचालित रूप से एक स्कीमा उत्पन्न करेगा। अब क्लाइंट एक क्वेरी निष्पादित कर सकता है:

query {  getUser(id: 1) {    name    email  }}


प्रतिक्रिया में केवल अनुरोधित फ़ील्ड होंगे:

{  "data": {    "getUser": {      "name": "Alice",      "email": "alice@example.com"    }  }}


म्यूटेशन (डेटा में परिवर्तन)

म्यूटेशन के लिए Mutation इंटरफ़ेस का उपयोग किया जाता है:

import com.expediagroup.graphql.server.operations.Mutation

class UserMutation : Mutation { fun createUser(name: String, email: String): User { // उपयोगकर्ता बनाने का तर्क return User(id = 2, name = name, email = email) }}


संबंधित क्वेरी:

mutation {  createUser(name: "Bob", email: "bob@example.com") {    id    name  }}


KGraphQL लाइब्रेरी

KGraphQL अधिक DSL-उन्मुख दृष्टिकोण प्रदान करता है, जिसमें एनोटेशन की आवश्यकता नहीं होती है। स्कीमा प्रोग्रामेटिक रूप से बनाई जाती है।



स्थापना

dependencies {    implementation("com.apurebase:kgraphql:0.18.0")    implementation("com.apurebase:kgraphql-ktor:0.18.0") // Ktor के लिए}


उदाहरण: स्कीमा परिभाषा

import com.apurebase.kgraphql.schema.dsl.SchemaBuilder

val schema = SchemaBuilder { query("hello") { resolver { -> "Hello, World!" } }

query("user") { resolver { id: Int -> User(id = id, name = "Charlie", email = "charlie@example.com") } }

mutation("createUser") { resolver { name: String, email: String -> User(id = 3, name = name, email = email) } }}


फिर इसे वेब फ्रेमवर्क से जोड़ें

अनुशंसाएँ