परिचय: Swift केवल मोबाइल ऐप्स के लिए नहीं है
कई डेवलपर्स Swift को केवल iOS और macOS से जोड़ने के आदी हैं। हालांकि, यह भाषा लंबे समय से Apple पारिस्थितिकी तंत्र से बाहर निकल चुकी है। Vapor और Kitura जैसे सर्वर फ्रेमवर्क के आगमन के साथ, Swift बैकएंड बनाने के लिए एक पूर्ण उपकरण बन गया है। इस लेख में हम 30 मिनट में Vapor फ्रेमवर्क का उपयोग करके Swift पर एक पूर्ण REST API लिखेंगे। आप सीखेंगे कि प्रोजेक्ट कैसे सेट करें, एंडपॉइंट कैसे बनाएं, डेटाबेस कैसे कनेक्ट करें और त्रुटियों को कैसे संभालें। तैयार हैं? चलिए शुरू करते हैं!
चरण 1: प्रोजेक्ट की स्थापना और कॉन्फ़िगरेशन
शुरू करने के लिए सुनिश्चित करें कि आपके पास Swift 5.5 या नया संस्करण स्थापित है। संस्करण की जांच करने के लिए कमांड:
swift --versionइसके बाद Vapor Toolbox स्थापित करें — प्रोजेक्ट प्रबंधन के लिए उपयोगिता:
brew install vaporअब एक नया प्रोजेक्ट बनाएं:
vapor new MyAPI --template=apiयह कमांड एक तैयार API टेम्पलेट के साथ फ़ोल्डर संरचना बनाएगा। प्रोजेक्ट फ़ोल्डर में जाएं और बिल्ड चलाएं:
cd MyAPIvapor buildयदि बिल्ड सफल होता है, तो सर्वर चलाएं:
vapor runडिफ़ॉल्ट रूप से, सर्वर http://127.0.0.1:8080 पर उपलब्ध होगा। ब्राउज़र खोलें और इस पते पर जाएं — आपको एक स्वागत संदेश दिखना चाहिए।
Vapor प्रोजेक्ट की संरचना
- Sources/App — एप्लिकेशन कोड वाली मुख्य निर्देशिका
- Sources/App/Controllers — अनुरोधों को संभालने के लिए कंट्रोलर
- Sources/App/Models — डेटा मॉडल
- Sources/App/routes.swift — रूट पंजीकरण के लिए फ़ाइल
- configure.swift — एप्लिकेशन और डेटाबेस कॉन्फ़िगरेशन
चरण 2: डेटा मॉडल और डेटाबेस बनाएं
उदाहरण के लिए, हम कार्य सूची (Todo) प्रबंधित करने के लिए एक सरल API बनाएंगे। डेटा मॉडल से शुरू करें। Sources/App/Models फ़ोल्डर में Todo.swift फ़ाइल बनाएं:
import Fluentimport Vapor
final class Todo: Model, Content { static let schema = "todos" @ID(key: .id) var id: UUID? @Field(key: "title") var title: String @Field(key: "is_completed") var isCompleted: Bool init() {} init(id: UUID? = nil, title: String, isCompleted: Bool = false) { self.id = id self.title = title self.isCompleted = isCompleted }}अब तालिका के लिए माइग्रेशन बनाएं। Sources/App/Migrations/CreateTodo.swift फ़ाइल में:
import Fluent
struct CreateTodo: Migration { func prepare(on database: Database) -> EventLoopFuture<Void> { database.schema("todos") .id() .field("title", .string, .required) .field("is_completed", .bool, .required) .create() } func revert(on database: Database) -> EventLoopFuture<Void> { database.schema("todos").delete() }}configure.swift में माइग्रेशन पंजीकृत करना न भूलें:
app.migrations.add(CreateTodo())सरलता के लिए, हम SQLite (अंतर्निहित डेटाबेस) का उपयोग करेंगे। configure.swift में जोड़ें:
app.databases.use(.sqlite(.file("db.sqlite")), as: .sqlite)चरण 3: REST API एंडपॉइंट बनाएं
अब सबसे दिलचस्प हिस्सा — CRUD संचालन का कार्यान्वयन। Sources/App/Controllers फ़ोल्डर में TodoController.swift कंट्रोलर बनाएं:
import Vapor
struct TodoController: RouteCollection { func boot(routes: RoutesBuilder) throws { let todos = routes.grouped("api", "todos") todos.get(use: index) todos.post(use: create) todos.group(":todoID") { todo in todo.get(use: show)