परिचय: Kotlin और REST API क्यों?
\nआधुनिक वेब डेवलपमेंट REST API के बिना अकल्पनीय है। यदि आप पहले से ही Python और Flask या FastAPI जैसे फ्रेमवर्क से परिचित हैं, तो आप निश्चित रूप से सर्वर एप्लिकेशन बनाने की सरलता और गति की सराहना करते हैं। Kotlin, JVM के लिए एक आधुनिक भाषा के रूप में, विशेष रूप से Ktor फ्रेमवर्क के साथ, समान लालित्य और संक्षिप्तता प्रदान करता है।
\nइस लेख में हम 30 मिनट में Kotlin पर एक पूर्ण REST API बनाएंगे। आप प्रोजेक्ट सेट अप करना, रूट बनाना, JSON को संसाधित करना और सर्वर चलाना सीखेंगे। कोई बेकार बात नहीं - केवल अभ्यास।
\nयदि आप अपने टेक्नोलॉजी स्टैक का विस्तार करना चाहते हैं या बैकएंड डेवलपमेंट के लिए Kotlin आज़माना चाहते हैं, तो यह गाइड आपके लिए है।
\n\nचरण 1: प्रोजेक्ट और निर्भरताएँ सेट करना
\nशुरू करने के लिए हमें Kotlin पर एक प्रोजेक्ट चाहिए। हम Gradle बिल्डर (या आपकी पसंद के अनुसार Maven) का उपयोग करेंगे। सबसे तेज़ तरीका Ktor Project Generator के माध्यम से प्रोजेक्ट बनाना है।
\nनिम्नलिखित विकल्प चुनें:
\n- \n
- Build System: Gradle Kotlin DSL \n
- Engine: Netty (या कोई अन्य) \n
- Plugins: Content Negotiation (JSON), Routing, Status Pages \n
आर्काइव डाउनलोड करने के बाद इसे अनज़िप करें और IntelliJ IDEA या किसी अन्य एडिटर में खोलें।
\nयदि आप मैन्युअल रूप से प्रोजेक्ट बना रहे हैं, तो build.gradle.kts में निम्नलिखित निर्भरताएँ जोड़ें:
dependencies {\n implementation("io.ktor:ktor-server-core:2.3.0")\n implementation("io.ktor:ktor-server-netty:2.3.0")\n implementation("io.ktor:ktor-server-content-negotiation:2.3.0")\n implementation("io.ktor:ktor-serialization-kotlinx-json:2.3.0")\n implementation("ch.qos.logback:logback-classic:1.4.11")\n}\nअब Application.kt फ़ाइल बनाएं - एप्लिकेशन का प्रवेश बिंदु।
import io.ktor.server.engine.*\nimport io.ktor.server.netty.*\nimport io.ktor.server.application.*\nimport io.ktor.server.plugins.contentnegotiation.*\nimport io.ktor.serialization.kotlinx.json.*\nimport kotlinx.serialization.json.Json\n\nfun main() {\n embeddedServer(Netty, port = 8080, host = "0.0.0.0") {\n configureSerialization()\n configureRouting()\n }.start(wait = true)\n}\n\nfun Application.configureSerialization() {\n install(ContentNegotiation) {\n json(Json {\n prettyPrint = true\n isLenient = true\n })\n }\n}\nहो गया! हमारे पास JSON के साथ काम करने के लिए बुनियादी सेटअप और पोर्ट 8080 पर एक सर्वर है।
\n\nचरण 2: डेटा मॉडल और स्टोरेज बनाना
\nREST API के लिए हमें डेटा चाहिए। आइए एक सरल User मॉडल और एक अस्थायी in-memory स्टोरेज बनाएं।
\nपहले @Serializable एनोटेशन के साथ एक data-क्लास परिभाषित करें:
import kotlinx.serialization.Serializable\n\n@Serializable\ndata class User(\n val id: Int,\n val name: String,\n val email: String\n)\nअब एक रिपॉजिटरी ऑब्जेक्ट बनाएं जो उपयोगकर्ताओं को स्टोर करेगा:
\nobject UserRepository {\n private val users = mutableListOf(\n User(1, "इवान इवानोव", "ivan@example.com"),\n User(2, "मारिया पेट्रोवा", "maria@example.com")\n )\n\n fun getAll(): List<User> = users.toList()\n\n fun getById(id: Int): User? = users.find { it.id == id }\n\n fun add(user: User): User {\n users.add(user)\n return user\n }\n\n fun delete(id: Int): Boolean = users.removeIf { it.id == id }\n}\nयह सबसे सरल समाधान है, लेकिन 30 मिनट के प्रदर्शन के लिए यह आदर्श है।
\n\nचरण 3: रूट (REST endpoints) कॉन्फ़िगर करना
\nअब सबसे दिलचस्प भाग - CRUD ऑपरेशन के लिए एंडपॉइंट बनाएं। Routing.kt फ़ाइल जोड़ें:
import io.ktor.server.routing.*\nimport io.ktor.server.response.*\nimport io.ktor.server.request.*\n\nfun Application.configureRouting() {\n routing {\n route("/api/u