परिचय: Swift मोबाइल डेवलपमेंट की सीमाओं से बाहर निकलता है
\n\nSwift केवल iOS और macOS एप्लिकेशन के लिए भाषा नहीं है। शक्तिशाली टाइप सिस्टम, उच्च प्रदर्शन और आधुनिक सिंटैक्स के कारण, इसका उपयोग सर्वर-साइड वेब डेवलपमेंट के लिए तेजी से बढ़ रहा है। बैकएंड के लिए Swift पारिस्थितिकी तंत्र परिपक्व अवस्था में पहुंच गया है: SwiftNIO पर आधारित एसिंक्रोनस फ्रेमवर्क, ORM सिस्टम और क्लाउड प्लेटफॉर्म के साथ एकीकरण सामने आए हैं।
\n\nइस लेख में, हम उन्नत डेवलपर्स के लिए वेब डेवलपमेंट के लिए शीर्ष 10 Swift फ्रेमवर्क पर चर्चा करेंगे। आप उनकी आर्किटेक्चरल विशेषताओं, कोड उदाहरणों और उपयोग के परिदृश्यों के बारे में जानेंगे। यह सामग्री उन लोगों के लिए उपयोगी होगी जो पहले से iOS डेवलपमेंट से परिचित हैं और अपने कौशल को सर्वर साइड तक विस्तारित करना चाहते हैं।
\n\n1. Vapor: पारिस्थितिकी तंत्र का निर्विवाद नेता
\n\nVapor सबसे लोकप्रिय सर्वर-साइड Swift फ्रेमवर्क है। यह SwiftNIO पर बनाया गया है और टूल का एक पूरा सेट प्रदान करता है: रूटिंग, middleware, WebSocket, प्रमाणीकरण और ORM (Fluent)। Vapor को समुदाय द्वारा सक्रिय रूप से समर्थित किया जाता है और इसके पास व्यापक दस्तावेज़ीकरण है।
\n\nआर्किटेक्चर और प्रदर्शन
\nVapor EventLoop पर आधारित एक एसिंक्रोनस मॉडल का उपयोग करता है। यह थ्रेड्स को ब्लॉक किए बिना हजारों समवर्ती कनेक्शनों को संभालने की अनुमति देता है। फ्रेमवर्क MVC संरचना का समर्थन करता है, लेकिन वैकल्पिक पैटर्न (जैसे, ViewRenderer के माध्यम से MVVM) का उपयोग करने की भी अनुमति देता है।
\n\nकोड उदाहरण: Vapor पर REST API
\nimport Vapor\n\nfinal class UserController: RouteCollection {\n func boot(routes: RoutesBuilder) throws {\n let users = routes.grouped("api", "users")\n users.get(use: index)\n users.post(use: create)\n users.group(":id") { user in\n user.get(use: show)\n user.put(use: update)\n user.delete(use: delete)\n }\n }\n\n func index(req: Request) async throws -> [User] {\n try await User.query(on: req.db).all()\n }\n\n func create(req: Request) async throws -> User {\n let user = try req.content.decode(User.self)\n try await user.save(on: req.db)\n return user\n }\n\n func show(req: Request) async throws -> User {\n guard let user = try await User.find(req.parameters.get("id"), on: req.db) else {\n throw Abort(.notFound)\n }\n return user\n }\n\n func update(req: Request) async throws -> User {\n guard let user = try await User.find(req.parameters.get("id"), on: req.db) else {\n throw Abort(.notFound)\n }\n let updated = try req.content.decode(User.self)\n user.name = updated.name\n user.email = updated.email\n try await user.save(on: req.db)\n return user\n }\n\n func delete(req: Request) async throws -> HTTPStatus {\n guard let user = try await User.find(req.parameters.get("id"), on: req.db) else {\n throw Abort(.notFound)\n }\n try await user.delete(on: req.db)\n return .ok\n }\n}\n\nकब चुनें: माइक्रोसर्विसेज, REST/GraphQL API, WebSocket पर चैट एप्लिकेशन, उन प्रोजेक्ट्स के लिए जहां तेजी से डेवलपमेंट और समृद्ध पारिस्थितिकी तंत्र की आवश्यकता है।
\n\n2. Kitura: IBM का कॉर्पोरेट मानक
\n\nKitura एक फ्रेमवर्क है जिसे IBM द्वारा क्लाउड समाधानों के लिए विकसित किया गया है। यह भी SwiftNIO पर बनाया गया है, लेकिन इसकी अधिक औपचारिक आर्किटेक्चर है। Kitura OpenAPI, Kubernetes और IBM Cloud के साथ एकीकरण का समर्थन करता है।
\n\nमुख्य विशेषताएं
\n- \n
- KituraContracts — API के लिए घोषणात्मक अनुबंध। \n
- Kitura-OpenAPI — स्वचालित दस्तावेज़ीकरण जनरेशन। \n
- Kitura-Credentials — मॉड्यूलर प्रमाणीकरण प्रणाली (OAuth, JWT, LDAP)। \n
- Stencil और Markdown टेम्पलेट इंजन का समर्थन। \n
उदाहरण: टाइप किए गए पैरामीटर के साथ रूटिंग
\nimport Kitura\n\nlet router = Ro