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

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

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

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

GraphQL Java: आधुनिक API बनाने के लिए शक्तिशाली उपकरण

\n\n

GraphQL Java — Java भाषा के लिए एक सर्वर-साइड लाइब्रेरी है, जो डेवलपर्स को GraphQL विनिर्देश के आधार पर लचीले, कुशल और टाइप-सुरक्षित API बनाने की अनुमति देती है। पारंपरिक REST API के विपरीत, GraphQL क्लाइंट को केवल उन डेटा का अनुरोध करने की क्षमता प्रदान करता है जिनकी उसे आवश्यकता होती है, जिससे स्थानांतरित की जाने वाली जानकारी की मात्रा काफी कम हो जाती है और एप्लिकेशन का प्रदर्शन तेज हो जाता है। यह लाइब्रेरी Java के लिए GraphQL का आधिकारिक कार्यान्वयन है और समुदाय द्वारा सक्रिय रूप से समर्थित है।

\n\n

GraphQL Java की मुख्य विशेषताएं और लाभ

\n\n
    \n
  • टाइप-सुरक्षा: स्कीमा स्तर पर सभी डेटा की सख्त टाइपिंग रनटाइम पर त्रुटियों से बचाती है और विकास को सरल बनाती है।
  • \n
  • क्वेरी में लचीलापन: क्लाइंट केवल आवश्यक फ़ील्ड, नेस्टेड ऑब्जेक्ट का अनुरोध कर सकते हैं और एक ही क्वेरी में कई ऑपरेशन भी कर सकते हैं।
  • \n
  • एकल प्रवेश बिंदु: कई एंडपॉइंट वाले REST के विपरीत, GraphQL सभी क्वेरी के लिए एक ही endpoint का उपयोग करता है।
  • \n
  • स्वचालित दस्तावेज़ीकरण: स्कीमा के आधार पर इंटरैक्टिव दस्तावेज़ीकरण उत्पन्न होता है (उदाहरण के लिए, GraphiQL या Playground के माध्यम से)।
  • \n
  • सब्सक्रिप्शन के लिए समर्थन: WebSocket के माध्यम से रीयल-टाइम अपडेट प्राप्त करने की क्षमता।
  • \n
  • Java इकोसिस्टम के साथ एकीकरण: Spring Boot, Micronaut, Quarkus और अन्य फ्रेमवर्क के साथ आसानी से एकीकृत होता है।
  • \n
\n\n

GraphQL Java के साथ शुरुआत करना

\n\n

अपने Maven प्रोजेक्ट में लाइब्रेरी जोड़ने के लिए, pom.xml फ़ाइल में निम्नलिखित निर्भरता जोड़ें:

\n\n
<dependency>\n    <groupId>com.graphql-java</groupId>\n    <artifactId>graphql-java</artifactId>\n    <version>21.3</version>\n</dependency>
\n\n

Gradle के लिए, build.gradle में यह पंक्ति जोड़ें:

\n\n
implementation 'com.graphql-java:graphql-java:21.3'
\n\n

GraphQL स्कीमा बनाना

\n\n

स्कीमा किसी भी GraphQL API की नींव है। यह डेटा प्रकार, उपलब्ध क्वेरी (Query), म्यूटेशन (Mutation) और सब्सक्रिप्शन (Subscription) को परिभाषित करता है। पुस्तकों की लाइब्रेरी के लिए एक स्कीमा उदाहरण देखें:

\n\n
type Book {\n    id: ID!\n    title: String!\n    author: String!\n    year: Int\n}\n\ntype Query {\n    bookById(id: ID!): Book\n    allBooks: [Book]\n}\n\ntype Mutation {\n    addBook(title: String!, author: String!, year: Int): Book\n}
\n\n

Java में स्कीमा लोड करने के लिए SchemaParser क्लास का उपयोग करें:

\n\n
import graphql.schema.idl.SchemaParser;\nimport graphql.schema.idl.TypeDefinitionRegistry;\n\n// फ़ाइल से स्कीमा लोड करना\nFile schemaFile = new File("src/main/resources/schema.graphqls");\nTypeDefinitionRegistry typeRegistry = new SchemaParser().parse(schemaFile);
\n\n

Resolver (DataFetcher) का कार्यान्वयन

\n\n

Resolver (या DataFetcher) वे क्लास हैं जो स्कीमा के प्रत्येक फ़ील्ड के लिए डेटा प्रदान करते हैं। bookById क्वेरी के लिए एक सरल resolver का उदाहरण:

\n\n
import graphql.schema.DataFetcher;\nimport graphql.schema.DataFetchingEnvironment;\n\npublic class BookDataFetcher implements DataFetcher<Book> {\n    @Override\n    public Book get(DataFetchingEnvironment environment) {\n        String id = environment.getArgument("id");\n        // डेटाबेस से पुस्तक प्राप्त करने का तर्क\n        return bookRepository.findById(id);\n    }\n}
\n\n

फिर resolver को स्कीमा फ़ील्ड से जोड़ें:

\n\n
import graphql.schema.idl.RuntimeWiring;\n\nRuntimeWiring wiring = RuntimeWiring.newRuntimeWiring()\n    .type("Query", builder -> builder.dataFetcher("bookById", new BookDataFetcher()))\n    .type("Mutation", builder -> builder.dataFetcher("addBook", new AddBookDataFetcher()))\n    .build();
\n\n

क्वेरी निष्पादित करना

\n\n

स्कीमा सेटअप करने के बाद

अनुशंसाएँ