Kotlin के लिए GraphQL लाइब्रेरीज़: बैकएंड डेवलपर्स के लिए संपूर्ण अवलोकन

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

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

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

Kotlin GraphQL लाइब्रेरी: API के साथ काम करने के लिए संपूर्ण मार्गदर्शिका

\n\n

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

\n\n

1. graphql-kotlin — Expedia Group की सर्वर-साइड लाइब्रेरी

\n\n

graphql-kotlin Kotlin में GraphQL सर्वर बनाने के लिए सबसे लोकप्रिय लाइब्रेरी है। यह GraphQL विनिर्देश की सभी क्षमताओं का पूरी तरह से समर्थन करती है और Spring Boot, Ktor और Micronaut फ्रेमवर्क के साथ उत्कृष्ट रूप से एकीकृत होती है।

\n\n

स्थापना और कॉन्फ़िगरेशन

\n\n

लाइब्रेरी को कनेक्ट करने के लिए build.gradle.kts में निर्भरता जोड़ें:

\n\n
dependencies {\n    // मुख्य लाइब्रेरी\n    implementation("com.expediagroup:graphql-kotlin-spring-server:6.5.0")\n    \n    // एनोटेशन से स्कीमा जनरेशन के लिए\n    implementation("com.expediagroup:graphql-kotlin-schema-generator:6.5.0")\n}
\n\n

एक सरल GraphQL API बनाना

\n\n

क्वेरी के लिए डेटा मॉडल और रिज़ॉल्वर परिभाषित करें:

\n\n
// डेटा मॉडल\ndata class User(val id: Int, val name: String, val email: String)\n\n// क्वेरी रिज़ॉल्वर\nclass UserQuery : Query {\n    fun getUser(id: Int): User? {\n        return users.find { it.id == id }\n    }\n    \n    companion object {\n        val users = listOf(\n            User(1, "अन्ना पेट्रोवा", "anna@example.com"),\n            User(2, "इवान सिदोरोव", "ivan@example.com")\n        )\n    }\n}\n\n// म्यूटेशन रिज़ॉल्वर\nclass UserMutation : Mutation {\n    fun createUser(name: String, email: String): User {\n        val newUser = User(users.size + 1, name, email)\n        users.add(newUser)\n        return newUser\n    }\n}
\n\n

अब Spring Boot कॉन्फ़िगरेशन में रिज़ॉल्वर पंजीकृत करें:

\n\n
@Configuration\nclass GraphQLConfig {\n    @Bean\n    fun userQuery(): UserQuery = UserQuery()\n    \n    @Bean\n    fun userMutation(): UserMutation = UserMutation()\n}
\n\n

API से क्वेरी

\n\n

GraphQL क्वेरी का उदाहरण:

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

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

\n\n
{\n  "data": {\n    "getUser": {\n      "name": "अन्ना पेट्रोवा",\n      "email": "anna@example.com"\n    }\n  }\n}
\n\n

2. Apollo Kotlin — Android और JVM के लिए क्लाइंट लाइब्रेरी

\n\n

Apollo Kotlin एक शक्तिशाली GraphQL क्लाइंट है जिसे विशेष रूप से Kotlin और Android के लिए विकसित किया गया है। यह टाइप-सुरक्षित क्वेरी और स्वचालित कोड जनरेशन प्रदान करता है।

\n\n

लाइब्रेरी कनेक्ट करना

\n\n
dependencies {\n    implementation("com.apollographql.apollo:apollo-runtime:3.8.0")\n    implementation("com.apollographql.apollo:apollo-normalized-cache-sqlite:3.8.0")\n}
\n\n

क्वेरी बनाना

\n\n

पहले GetUserQuery.graphql फ़ाइल में GraphQL क्वेरी परिभाषित करें:

\n\n
query GetUser($id: Int!) {\n  getUser(id: $id) {\n    id\n    name\n    email\n  }\n}
\n\n

फिर Kotlin में जनरेटेड कोड का उपयोग करें:

\n\n
val apolloClient = ApolloClient.builder()\n    .serverUrl("http://localhost:8080/graphql")\n    .build()\n\nsuspend fun fetchUser(userId: Int): User? {\n    val response = apolloClient\n        .query(GetUserQuery(userId))\n        .execute()\n    \n    return response.data?.getUser?.let { user ->\n        User(\n            id = user.id,\n            name = user.name,\n            email = user.email\n        )\n    }\n}
\n\n

3. KGraphQL — Ktor के लिए हल्की लाइब्रेरी

\n\n

KGraphQL Ktor एप्लिकेशन में GraphQL सर्वर बनाने के लिए एक न्यूनतम लाइब्रेरी है। यह

अनुशंसाएँ