Kotlin के लिए GraphQL: API बनाने के लिए शक्तिशाली लाइब्रेरीज़

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

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

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

Kotlin के लिए GraphQL लाइब्रेरीज़: पूर्ण अवलोकन और व्यावहारिक मार्गदर्शिका



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



1. graphql-kotlin — Expedia Group की आधिकारिक लाइब्रेरी



graphql-kotlin Kotlin पर GraphQL सर्वर बनाने के लिए सबसे परिपक्व और समर्थित लाइब्रेरी है। यह भाषा की क्षमताओं जैसे कोरूटीन, data क्लासेस और null-safety का पूरा उपयोग करती है।



मुख्य विशेषताएं:

  • एसिंक्रोनस प्रोसेसिंग के लिए Kotlin कोरूटीन का समर्थन
  • data क्लासेस से स्वचालित स्कीमा जनरेशन
  • WebSocket के माध्यम से सब्सक्रिप्शन के लिए अंतर्निहित समर्थन
  • Spring Boot, Ktor और अन्य फ्रेमवर्क के साथ एकीकरण
  • GraphQL June 2018 विनिर्देश का पूर्ण समर्थन


graphql-kotlin पर सर्वर का उदाहरण:

// डेटा मॉडल परिभाषित करेंdata class User(val id: String, val name: String, val email: String)

// Query रिज़ॉल्वर बनाएंclass UserQuery : Query { fun getUser(id: String): User? { // उपयोगकर्ता प्राप्त करने का तर्क return User(id = "1", name = "इवान पेत्रोव", email = "ivan@example.com") } fun users(): List<User> = listOf( User("1", "इवान", "ivan@example.com"), User("2", "मारिया", "maria@example.com") )}

// सर्वर सेटअप और चलाएंfun main() { val schema = Schema { query(UserQuery()) } val server = GraphQLServer(schema) server.start(port = 8080)}


क्लाइंट क्वेरी का उदाहरण:

query {  user(id: "1") {    name    email  }}


2. KGraphQL — हल्का विकल्प



KGraphQL GraphQL API बनाने के लिए एक न्यूनतम लाइब्रेरी है। यह सेटअप में सरलता और अनावश्यक निर्भरताओं की अनुपस्थिति के लिए जानी जाती है।



प्रमुख विशेषताएं:

  • न्यूनतम आकार — लगभग 100 KB
  • Spring Boot या अन्य भारी फ्रेमवर्क की आवश्यकता नहीं
  • स्कीमा परिभाषित करने के लिए DSL का समर्थन
  • किसी भी HTTP सर्वर के साथ एकीकरण की संभावना


KGraphQL के उपयोग का उदाहरण:

// मॉडल परिभाषित करेंdata class Product(val id: Int, val title: String, val price: Double)

// GraphQL स्कीमा बनाएंval schema = schema { query("products") { resolver { -> listOf( Product(1, "लैपटॉप", 89999.99), Product(2, "माउस", 2499.50) ) } } query("product") { resolver { id: Int -> Product(id, "उत्पाद #$id", 1000.0) } }}

// सर्वर चलाएंfun main() { val server = KGraphQLServer(schema) server.start(port = 4000)}


3. Apollo Kotlin — Apollo की क्लाइंट लाइब्रेरी



Apollo Kotlin GraphQL API के साथ काम करने के लिए एक शक्तिशाली क्लाइंट है। यह GraphQL स्कीमा के आधार पर टाइप-सेफ कोड उत्पन्न करता है, जो विकास को काफी सरल बनाता है।



Apollo Kotlin के लाभ:

  • .graphql फ़ाइलों से Kotlin कोड का जनरेशन
  • कैशिंग का समर्थन (सामान्यीकृत कैश)
  • कोरूटीन और Flow के साथ काम करना
  • स्वचालित त्रुटि प्रबंधन
  • म्यूटेशन, क्वेरी और सब्सक्रिप्शन का समर्थन


क्लाइंट पर Apollo Kotlin के उपयोग का उदाहरण:

// पहले .graphql फ़ाइल में क्वेरी परिभाषित करें// file: GetUser.graphql// query GetUser($id: ID!) {//   user(id: $id) {//     id//     name//     email//   }                    

अनुशंसाएँ