परिचय: REST API के लिए Swift क्यों?
Swift केवल मोबाइल ऐप्स के लिए भाषा नहीं है। Vapor और Kitura जैसे फ्रेमवर्क की बदौलत, आप सर्वर साइड के लिए पूर्ण REST API बना सकते हैं। यह विशेष रूप से उपयोगी है यदि आपका iOS ऐप पहले से Swift का उपयोग करता है: आप क्लाइंट और सर्वर दोनों एक ही भाषा में लिख सकते हैं, जिससे विकास का समय कम होता है और कोड रखरखाव सरल होता है।
इस लेख में, हम Vapor फ्रेमवर्क का उपयोग करके Swift में एक सरल REST API बनाएंगे - जो Swift पर सर्वर विकास के लिए सबसे लोकप्रिय समाधान है। हम सर्वर सेट अप करेंगे, CRUD संचालन के लिए रूट जोड़ेंगे और इसका परीक्षण करेंगे। पूरी प्रक्रिया में 30 मिनट से अधिक नहीं लगेगा।
आवश्यकताएँ: macOS या Linux, Swift 5.8+ (या नया) स्थापित, HTTP और JSON की बुनियादी समझ।
चरण 1: Vapor प्रोजेक्ट की स्थापना और सेटअप
Vapor त्वरित शुरुआत के लिए एक सुविधाजनक CLI टूल प्रदान करता है। इसे Homebrew के माध्यम से स्थापित करें:
brew install vaporफिर एक नया प्रोजेक्ट बनाएँ:
vapor new MyAPI --template=apicd MyAPIफ़्लैग --template=api REST API के लिए न्यूनतम संरचना के साथ एक टेम्पलेट बनाता है। प्रोजेक्ट बनाने के बाद, इसे Xcode (या किसी भी संपादक) में खोलें:
open Package.swiftप्रोजेक्ट संरचना में शामिल है:
Sources/App/— मुख्य तर्क (रूट, कंट्रोलर, मॉडल)।Sources/App/routes.swift— रूट का पंजीकरण।Sources/App/configure.swift— एप्लिकेशन कॉन्फ़िगरेशन।Package.swift— निर्भरताएँ (Vapor पहले से शामिल है)।
यदि आप Xcode का उपयोग कर रहे हैं, तो यह स्वचालित रूप से निर्भरताएँ डाउनलोड करेगा। टर्मिनल में बिल्ड करने के लिए vapor build चलाएँ।
चरण 2: डेटा मॉडल और डेटाबेस बनाना
REST API के लिए हमें एक मॉडल चाहिए। आइए एक सरल Task (कार्य) मॉडल बनाएँ जिसमें फ़ील्ड हों: id, title, completed। Vapor में, मॉडल आमतौर पर Model (Fluent ORM) से विरासत में मिलते हैं।
फ़ाइल बनाएँ Sources/App/Models/Task.swift:
import Fluentimport Vapor
final class Task: Model, Content { static let schema = "tasks"
@ID(key: .id) var id: UUID?
@Field(key: "title") var title: String
@Field(key: "completed") var completed: Bool
init() {}
init(id: UUID? = nil, title: String, completed: Bool = false) { self.id = id self.title = title self.completed = completed }}अब डेटाबेस में तालिका के लिए एक माइग्रेशन बनाएँ। फ़ाइल बनाएँ Sources/App/Migrations/CreateTask.swift:
import Fluent
struct CreateTask: Migration { func prepare(on database: Database) -> EventLoopFuture<Void> { database.schema("tasks") .id() .field("title", .string, .required) .field("completed", .bool, .required) .create() }
func revert(on database: Database) -> EventLoopFuture<Void> { database.schema("tasks").delete() }}configure.swift में माइग्रेशन जोड़ें:
app.migrations.add(CreateTask())डिफ़ॉल्ट रूप से, Vapor SQLite का उपयोग करता है (प्रोजेक्ट फ़ोल्डर में फ़ाइल)। यदि आप PostgreSQL या MySQL चाहते हैं - configure.swift में सेटिंग्स बदलें, लेकिन त्वरित शुरुआत के लिए SQLite बढ़िया काम करता है।
चरण 3: REST API रूट का पंजीकरण
अब अनुरोधों को संसाधित करने के लिए एक कंट्रोलर बनाएँ। फ़ाइल बनाएँ Sources/App/Controllers/TaskController.swift:
import Vaporimport Fluent
struct TaskController: RouteCollection { func boot(routes: RoutesBuilder) throws { let tasks = routes.grouped("tasks")
tasks.get(use: index) // GET /tasks tasks.post(use: create) // POST /tasks tasks.grou