Swift में माइक्रोसर्विसेज़: आर्किटेक्चर और व्यवहार A से Z तक

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

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

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

Swift में माइक्रोसर्विसेज़: आर्किटेक्चर और व्यवहार A से Z तक

\n\n

मोबाइल और सर्वर डेवलपमेंट की दुनिया में, Swift लंबे समय से केवल iOS ऐप्स की भाषा नहीं रह गई है। Vapor और Kitura जैसे फ्रेमवर्क, साथ ही Linux के लिए मूल समर्थन के कारण, Swift सर्वर सिस्टम बनाने के लिए एक पूर्ण भाषा बन गई है। इस लेख में, हम Swift में माइक्रोसर्विस आर्किटेक्चर को डिज़ाइन और कार्यान्वित करने के तरीके पर चर्चा करेंगे - टूल चुनने से लेकर production में डिप्लॉय करने तक।

\n\n

1. माइक्रोसर्विसेज़ के लिए Swift क्यों?

\n\n

माइक्रोसर्विस आर्किटेक्चर के लिए उच्च प्रदर्शन, सुरक्षा और रखरखाव में आसानी की आवश्यकता होती है। Swift यह सब प्रदान करता है:

\n\n
    \n
  • प्रदर्शन — Swift पर संकलित कोड गति में C++ और Rust के बराबर है।
  • \n
  • टाइप सुरक्षा — सख्त टाइप सिस्टम के कारण न्यूनतम runtime त्रुटियाँ।
  • \n
  • आधुनिक सिंटैक्स — प्रोटोकॉल, async/await और Codable डेवलपमेंट को सरल बनाते हैं।
  • \n
  • क्रॉस-प्लेटफ़ॉर्म — macOS, Linux और क्लाउड वातावरण के लिए एक ही कोड।
  • \n
\n\n

Swift पर सर्वर डेवलपमेंट के लिए मुख्य फ्रेमवर्क Vapor है। यह एक शक्तिशाली राउटर, WebSocket समर्थन, ORM (Fluent) और Docker के साथ एकीकरण प्रदान करता है।

\n\n

2. Swift पर माइक्रोसर्विस आर्किटेक्चर

\n\n

आइए एक विशिष्ट माइक्रोसर्विस आर्किटेक्चर पर विचार करें जो उपयोगकर्ता प्रबंधन के लिए जिम्मेदार है। इसमें शामिल होंगे:

\n\n

2.1 डेटा मॉडल

\n
import Vapor\nimport Fluent\n\nfinal class User: Model, Content {\n    static let schema = "users"\n    \n    @ID(key: .id)\n    var id: UUID?\n    \n    @Field(key: "email")\n    var email: String\n    \n    @Field(key: "name")\n    var name: String\n    \n    @Field(key: "password_hash")\n    var passwordHash: String\n    \n    init() {}\n    \n    init(id: UUID? = nil, email: String, name: String, passwordHash: String) {\n        self.id = id\n        self.email = email\n        self.name = name\n        self.passwordHash = passwordHash\n    }\n}
\n\n

2.2 async/await के साथ कंट्रोलर

\n
import Vapor\n\nstruct 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(":userID") { user in\n            user.get(use: show)\n            user.delete(use: delete)\n        }\n    }\n    \n    @Sendable\n    func index(req: Request) async throws -> [User] {\n        try await User.query(on: req.db).all()\n    }\n    \n    @Sendable\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    @Sendable\n    func show(req: Request) async throws -> User {\n        guard let user = try await User.find(req.parameters.get("userID"), on: req.db) else {\n            throw Abort(.notFound)\n        }\n        return user\n    }\n    \n    @Sendable\n    func delete(req: Request) async throws -> HTTPStatus {\n        guard let user = try await User.find(req.parameters.get("userID"), on: req.db) else {\n            throw Abort(.notFound)\n        }\n        try await user.delete(on: req.db)\n        return .noContent\n    }\n}
\n\n

2.3 रूट और माइग्रेशन का पंजीकरण

\n
import Vapor\nimport Fluent\n\nfunc configure(_ app: Application) throws {\n    // डेटाबेस कॉन्फ़िगरेशन (PostgreSQL)\n    app.databases.use(.postgres(\n        hostname: Environment.get("DB_HOST") ?? "localhost",\n        port: Environment.get("DB_PORT").flatMap(Int.init) ?? 5432,\n        username: Environment.get("DB_USER") ?? "vapor",\n        password: Environment.get("DB_PASS") ?? "password",\n        database: Environment.get("DB_NAME") ?? "users_db"\n    ), as: .psql)\n    \n    // माइग्रेशन\n    app.migrations.add(CreateUser())\n    \n    // कंट्रोलर का पंजीकरण\n    try app.regist                

ब्लॉग

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