30 मिनट में Swift पर REST API कैसे लिखें: व्यावहारिक मार्गदर्शिका

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

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

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

परिचय: Swift REST API के लिए क्यों उपयुक्त है?

\n\n

जब सर्वर डेवलपमेंट की बात आती है, तो Swift पहला भाषा नहीं है जो दिमाग में आता है। हालांकि, Vapor फ्रेमवर्क (और इसके विकल्प Kitura) के आगमन के साथ, Swift REST API बनाने के लिए एक पूर्ण उपकरण बन गया है। सर्वर पर Swift का उपयोग क्यों करें? पहला, यह iOS, macOS और बैकएंड के लिए एक ही भाषा है - आप डेटा मॉडल का पुन: उपयोग कर सकते हैं। दूसरा, Swift तेज़, सुरक्षित है और async/await के माध्यम से एसिंक्रोनसिटी के लिए उत्कृष्ट समर्थन रखता है।

\n\n

इस मार्गदर्शिका में, हम Vapor फ्रेमवर्क का उपयोग करके Swift में कार्यों की सूची (Todo list) प्रबंधित करने के लिए एक सरल REST API बनाएंगे। आप सर्वर सेट अप करना, रूट बनाना, JSON के साथ काम करना और API का परीक्षण करना सीखेंगे। पूरी प्रक्रिया में लगभग 30 मिनट लगेंगे।

\n\n

चरण 1: प्रोजेक्ट इंस्टॉल और सेट अप करना

\n\n

कोड लिखने से पहले, Vapor Toolbox इंस्टॉल करना होगा - Vapor प्रोजेक्ट बनाने और प्रबंधित करने के लिए एक कमांड-लाइन उपयोगिता।

\n\n

Vapor Toolbox इंस्टॉल करना

\n

टर्मिनल खोलें और निष्पादित करें:

\n
brew install vapor
\n

यदि आपके पास Homebrew नहीं है, तो इसे brew.sh से इंस्टॉल करें।

\n\n

नया प्रोजेक्ट बनाना

\n

हम TodoAPI नाम से एक नया प्रोजेक्ट बनाएंगे:

\n
vapor new TodoAPI -n\ncd TodoAPI
\n

फ्लैग -n का अर्थ है "बिना उदाहरण के" - हमें एक साफ टेम्पलेट मिलेगा।

\n\n

सर्वर चलाना

\n

Xcode में प्रोजेक्ट खोलें:

\n
open Package.swift
\n

स्कीम Run चुनें और Cmd+R दबाएं। कुछ सेकंड में सर्वर http://127.0.0.1:8080 पर चलने लगेगा। ब्राउज़र खोलें - आपको Vapor से एक स्वागत संदेश दिखना चाहिए।

\n\n

चरण 2: डेटा मॉडल बनाना

\n\n

हमारा API कार्यों का प्रबंधन करेगा। प्रत्येक कार्य में ID, शीर्षक और स्थिति (पूर्ण/अपूर्ण) होती है।

\n\n

हम Todo मॉडल बनाएंगे। Vapor में, मॉडल सामान्य संरचनाएं हैं जो प्रोटोकॉल Content (JSON में सीरियलाइज़ेशन के लिए) और Codable का पालन करती हैं।

\n\n

फ़ाइल Sources/App/Models/Todo.swift बनाएं:

\n
import Vapor\n\nstruct Todo: Content, Codable {\n    var id: UUID?\n    var title: String\n    var isCompleted: Bool\n    \n    init(id: UUID? = nil, title: String, isCompleted: Bool = false) {\n        self.id = id\n        self.title = title\n        self.isCompleted = isCompleted\n    }\n}
\n\n

ध्यान दें: id एक वैकल्पिक UUID है। हम इसे कार्य बनाते समय सर्वर पर उत्पन्न करेंगे।

\n\n

चरण 3: स्टोरेज और कंट्रोलर बनाना

\n\n

सरलता के लिए, हम कार्यों को मेमोरी में (एक ऐरे में) स्टोर करेंगे। वास्तविक प्रोजेक्ट में, आप डेटाबेस (Fluent ORM) का उपयोग करेंगे, लेकिन 30 मिनट के डेमो के लिए यह अत्यधिक है।

\n\n

स्टोरेज (In-Memory Store)

\n

फ़ाइल Sources/App/Controllers/TodoStore.swift बनाएं:

\n
import Vapor\n\nfinal class TodoStore {\n    private var todos: [Todo] = []\n    private let lock = NSLock()\n    \n    func getAll() -> [Todo] {\n        lock.lock()\n        defer { lock.unlock() }\n        return todos\n    }\n    \n    func get(id: UUID) -> Todo? {\n        lock.lock()\n        defer { lock.unlock() }\n        return todos.first { $0.id == id }\n    }\n    \n    func create(_ todo: inout Todo) -> Todo {\n        lock.lock()\n        defer { lock.unlock() }\n        todo.id = UUID()\n        todos.append(todo)\n        return todo\n    }\n    \n    func update(id: UUID, with updatedTodo: Todo) -> Todo? {\n        lock.lock()\n        defer { lock.unlock() }\n        guard let index = todos.firstIndex(where: { $0.id == id }) else { return nil }\n        var mutableTodo = updatedTodo\n        mutableTodo.id = id\n        todos[index] = mutableTodo\n        return mutableTodo\n    }\n    \n    func delete(id: UUID) ->                

ब्लॉग

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