كيفية كتابة REST API بلغة Swift في 30 دقيقة: دليل للمبتدئين

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

كيفية كتابة REST API بلغة Swift في 30 دقيقة: للمبتدئين



Swift ليست مجرد لغة لإنشاء تطبيقات الهاتف المحمول لأنظمة iOS وmacOS. مع ظهور إطار العمل Vapor، أصبح تطوير تطبيقات الخادم بلغة Swift متاحًا وسهلًا. في هذه المقالة، سنوضح كيفية كتابة REST API بسيط بلغة Swift في 30 دقيقة حرفيًا. ستتعلم المبادئ الأساسية للعمل مع Vapor، وكيفية إنشاء المسارات، ومعالجة الطلبات، وإرجاع استجابات JSON.



هذا الدليل مثالي للمبتدئين الذين هم على دراية بأساسيات Swift، لكنهم لم يكتبوا أبدًا كود خادم. سنشرح العملية خطوة بخطوة، مع أمثلة الكود والشروحات.



ما هو REST API ولماذا هو مطلوب؟



REST (Representational State Transfer) هو نمط معماري لتفاعل مكونات التطبيق الموزع عبر الشبكة. يسمح REST API للتطبيقات العميلة (مثل تطبيق iOS) بإرسال واستقبال البيانات من الخادم عبر طلبات HTTP.



طرق HTTP الرئيسية المستخدمة في REST:

  • GET — الحصول على البيانات
  • POST — إنشاء مورد جديد
  • PUT — تحديث مورد موجود
  • DELETE — حذف مورد


لمثالنا، سننشئ API بسيطًا لإدارة قائمة المهام (Todo List). سيدعم جميع العمليات الأساسية الأربع CRUD (إنشاء، قراءة، تحديث، حذف).



تثبيت Vapor وإنشاء المشروع



Vapor هو إطار العمل الأكثر شيوعًا لتطوير الويب بلغة Swift. للبدء، قم بتثبيت Vapor Toolbox عبر Homebrew:



brew install vapor


بعد التثبيت، قم بإنشاء مشروع جديد:



vapor new TodoAPIcd TodoAPI


سينشئ هذا الأمر هيكل المشروع مع خادم مُعد مسبقًا. افتح المشروع في Xcode:



open Package.swift


في Xcode، سترى الهيكل القياسي لمشروع Vapor. الكود الرئيسي موجود في مجلد Sources/App.



إنشاء نموذج البيانات



للعمل مع المهام، نحتاج إلى نموذج. لننشئ ملف Todo.swift في مجلد Sources/App/Models:



import Vaporimport Fluent

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 }}


نستخدم Fluent — ORM للغة Swift، والذي يعمل مع قواعد البيانات. في مثالنا، سنستخدم SQLite للبساطة. لاحظ البروتوكول Content — فهو يسمح بترميز/فك ترميز النموذج تلقائيًا إلى JSON.



إعداد الترحيل وقاعدة البيانات



الآن، لننشئ ترحيلًا لنموذجنا. أضف ملف CreateTodo.swift إلى مجلد Sources/App/Migrations:



import Fluent

struct CreateTodo: Migration { func prepare(on database: Database) -> EventLoopFuture<Void> { return database.schema("todos") .id() .field("title", .string, .required) .field("is_completed", .bool, .required) .create() } func revert(on database: Database) -> EventLoopFuture<Void> { return database.schema("todos").delete() }}


في ملف configure.swift، أضف تسجيل قاعدة البيانات والترحيل:



import Fluentimport FluentSQLiteDriver

public func configure(_ app: Application) throws { app.databases.use(.sqlite(.file("db.sqlite")), as: .sqlite) app.migrations.add(CreateTodo())

المدونات

توصيات الكتب