Kotlin के साथ GraphQL API: व्यावहारिक चरण-दर-चरण ट्यूटोरियल

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

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

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

परिचय: GraphQL और Kotlin एक आदर्श जोड़ी क्यों हैं?

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

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



1. प्रोजेक्ट और निर्भरताएँ सेट करना

सबसे पहले, हम GraphQL समर्थन के साथ एक नया Spring Boot प्रोजेक्ट बनाएंगे। हम Spring for GraphQL का उपयोग करेंगे - आधिकारिक एकीकरण जो काम को अत्यंत सरल बनाता है।

1.1. प्रोजेक्ट बनाना

आप Spring Initializr या किसी भी IDE (IntelliJ IDEA) का उपयोग कर सकते हैं। निम्नलिखित निर्भरताएँ जोड़ें:

  • Spring Web
  • Spring for GraphQL
  • Spring Data JPA
  • H2 Database (सरलता के लिए)

फ़ाइल build.gradle.kts में निम्नलिखित पंक्तियाँ होनी चाहिए:

dependencies {    implementation("org.springframework.boot:spring-boot-starter-web")    implementation("org.springframework.boot:spring-boot-starter-graphql")    implementation("org.springframework.boot:spring-boot-starter-data-jpa")    runtimeOnly("com.h2database:h2")    testImplementation("org.springframework.boot:spring-boot-starter-test")}


1.2. कॉन्फ़िगरेशन

हम डेटाबेस के साथ काम करने के लिए एक सरल Book एंटिटी और रिपॉजिटरी बनाएंगे।

// Book.kt@Entitydata class Book(    @Id @GeneratedValue(strategy = GenerationType.IDENTITY)    val id: Long = 0,    val title: String,    val author: String,    val year: Int)

// BookRepository.ktinterface BookRepository : JpaRepository<Book, Long>


2. GraphQL स्कीमा और कंट्रोलर बनाना

GraphQL सख्त टाइपिंग का उपयोग करता है। स्कीमा परिभाषित करती है कि कौन सा डेटा उपलब्ध है और इसे कैसे मांगा जा सकता है। Spring for GraphQL में, स्कीमा को एनोटेशन का उपयोग करके वर्णित किया जा सकता है।



2.1. कोड के माध्यम से स्कीमा परिभाषित करना

हम एक कंट्रोलर क्लास बनाएंगे जो GraphQL क्वेरी को संभालेगा। डेटा पढ़ने के लिए @QueryMapping एनोटेशन और परिवर्तनों के लिए @MutationMapping का उपयोग करें।

// BookController.kt@Controllerclass BookController(private val repository: BookRepository) {

@QueryMapping fun allBooks(): List<Book> = repository.findAll()

@QueryMapping fun bookById(@Argument id: Long): Book? = repository.findById(id).orElse(null)

@MutationMapping fun addBook(@Argument title: String, @Argument author: String, @Argument year: Int): Book { val book = Book(title = title, author = author, year = year) return repository.save(book) }

@MutationMapping fun deleteBook(@Argument id: Long): Boolean { if (repository.existsById(id)) { repository.deleteById(id) return true } return false }}


2.2. विकल्प: .graphqls स्कीमा फ़ाइल

आप resources/graphql फ़ोल्डर में एक अलग schema.graphqls फ़ाइल में भी स्कीमा परिभाषित कर सकते हैं:

type Query {    allBooks: [Book]    bookById(id: ID!): Book}

type Mutation { addBook(title: String!, author: String!, year: Int!): Book deleteBook(id: ID!): Boolean}

type Book { id: ID! title: S

ब्लॉग

पुस्तक अनुशंसाएँ