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

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

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

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

GraphQL Java: आधुनिक API बनाने के लिए लाइब्रेरी की पूर्ण गाइड



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



GraphQL Java की मुख्य क्षमताएँ



  • GraphQL विनिर्देश का पूर्ण समर्थन — लाइब्रेरी सभी मुख्य सुविधाओं को लागू करती है: क्वेरी (queries), म्यूटेशन (mutations), सब्सक्रिप्शन (subscriptions) और इंटरफ़ेस।
  • टाइप सुरक्षा — स्कीमा की सख्त टाइपिंग संकलन चरण में त्रुटियों से बचने में मदद करती है और API को अधिक पूर्वानुमानित बनाती है।
  • लचीला कॉन्फ़िगरेशन — स्कीमा को अनुकूलित करने, निर्देश और एक्सटेंशन जोड़ने की क्षमता।
  • लोकप्रिय फ्रेमवर्क के साथ एकीकरण — Spring Boot, Micronaut, Quarkus और अन्य के साथ उत्कृष्ट संगतता।
  • प्रदर्शन — N+1 समस्या को हल करने के लिए DataLoader का उपयोग करके कुशल अनुरोध प्रसंस्करण।


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



GraphQL Java के साथ शुरू करने के लिए, अपने pom.xml (Maven) में निर्भरता जोड़ें:



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


यदि आप Gradle का उपयोग कर रहे हैं, तो build.gradle में जोड़ें:



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


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



GraphQL स्कीमा डेटा प्रकार और क्लाइंट के लिए उपलब्ध संचालन को परिभाषित करती है। उपयोगकर्ता प्रबंधन प्रणाली के लिए एक सरल स्कीमा का उदाहरण देखें:



type User {    id: ID!    name: String!    email: String!    age: Int    posts: [Post]}

type Post { id: ID! title: String! content: String! author: User!}

type Query { user(id: ID!): User users: [User] post(id: ID!): Post}

type Mutation { createUser(name: String!, email: String!, age: Int): User updateUser(id: ID!, name: String, email: String): User}


Java में कार्यान्वयन



GraphQL Java के साथ काम करने के लिए, रिज़ॉल्वर क्लासेस बनाना आवश्यक है जो अनुरोधों को संसाधित करेंगे। उपयोगकर्ताओं के लिए रिज़ॉल्वर का उदाहरण:



import graphql.kickstart.tools.GraphQLQueryResolver;import org.springframework.stereotype.Component;import java.util.List;import java.util.Map;import java.util.concurrent.ConcurrentHashMap;

@Componentpublic class UserQueryResolver implements GraphQLQueryResolver { private final Map<String, User> users = new ConcurrentHashMap<>(); public User user(String id) { return users.get(id); } public List<User> users() { return List.copyOf(users.values()); }}


म्यूटेशन के लिए रिज़ॉल्वर:



import graphql.kickstart.tools.GraphQLMutationResolver;import org.springframework.stereotype.Component;import java.util.UUID;

@Componentpublic class UserMutationResolver implements GraphQLMutationResolver { private final Map<String, User> users = new ConcurrentHashMap<>(); public User createUser(String name, String email, Integer age) { String id = UUID.randomUUID().toString(); User user = new User(id, name, email, age); users.put(id, user); return user; }}


डेटा मॉडल



डेटा प्रस्तुत करने के लिए User क्लास को परिभाषित करें:



public class User {    private String id;    private Stri                    

अनुशंसाएँ