كيفية كتابة REST API بلغة Kotlin في 30 دقيقة: دليل خطوة بخطوة

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

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

ابدأ الدورة

مقدمة: لماذا Kotlin و REST API؟

\n

تطوير الويب الحديث لا يمكن تصوره بدون REST API. إذا كنت معتادًا بالفعل على Python وأطر العمل مثل Flask أو FastAPI، فمن المحتمل أنك تقدر البساطة والسرعة في إنشاء تطبيقات الخادم. Kotlin، كلغة حديثة لـ JVM، تقدم أناقة وإيجازًا لا يقل عن ذلك، خاصة عند دمجها مع إطار العمل Ktor.

\n

في هذه المقالة، سنقوم في غضون 30 دقيقة بإنشاء REST API كامل بلغة Kotlin. ستتعلم كيفية إعداد المشروع، وإنشاء المسارات، ومعالجة JSON، وتشغيل الخادم. لا ماء - فقط تطبيق عملي.

\n

إذا كنت ترغب في توسيع مجموعة تقنياتك أو ببساطة تجربة Kotlin لتطوير الواجهة الخلفية، فهذا الدليل مناسب لك.

\n\n

الخطوة 1: إعداد المشروع والتبعيات

\n

للبدء، سنحتاج إلى مشروع بلغة Kotlin. سنستخدم أداة البناء Gradle (أو Maven - حسب اختيارك). أسرع طريقة هي إنشاء مشروع عبر Ktor Project Generator.

\n

اختر الخيارات التالية:

\n
    \n
  • نظام البناء: Gradle Kotlin DSL
  • \n
  • المحرك: Netty (أو أي محرك آخر)
  • \n
  • الإضافات: Content Negotiation (JSON)، Routing، Status Pages
  • \n
\n

بعد تنزيل الأرشيف، قم بفك ضغطه وافتحه في IntelliJ IDEA أو أي محرر آخر.

\n

إذا كنت تنشئ المشروع يدويًا، أضف التبعيات التالية إلى ملف build.gradle.kts:

\n
dependencies {\n    implementation("io.ktor:ktor-server-core:2.3.0")\n    implementation("io.ktor:ktor-server-netty:2.3.0")\n    implementation("io.ktor:ktor-server-content-negotiation:2.3.0")\n    implementation("io.ktor:ktor-serialization-kotlinx-json:2.3.0")\n    implementation("ch.qos.logback:logback-classic:1.4.11")\n}
\n

الآن، لننشئ ملف Application.kt - نقطة الدخول للتطبيق.

\n
import io.ktor.server.engine.*\nimport io.ktor.server.netty.*\nimport io.ktor.server.application.*\nimport io.ktor.server.plugins.contentnegotiation.*\nimport io.ktor.serialization.kotlinx.json.*\nimport kotlinx.serialization.json.Json\n\nfun main() {\n    embeddedServer(Netty, port = 8080, host = "0.0.0.0") {\n        configureSerialization()\n        configureRouting()\n    }.start(wait = true)\n}\n\nfun Application.configureSerialization() {\n    install(ContentNegotiation) {\n        json(Json {\n            prettyPrint = true\n            isLenient = true\n        })\n    }\n}
\n

تم! لدينا إعداد أساسي للعمل مع JSON وخادم على المنفذ 8080.

\n\n

الخطوة 2: إنشاء نموذج البيانات والتخزين

\n

لـ REST API نحتاج إلى بيانات. لننشئ نموذجًا بسيطًا User (مستخدم) ومخزنًا مؤقتًا في الذاكرة.

\n

أولاً، دعنا نحدد فئة بيانات مع التعليق التوضيحي @Serializable:

\n
import kotlinx.serialization.Serializable\n\n@Serializable\ndata class User(\n    val id: Int,\n    val name: String,\n    val email: String\n)
\n

الآن، لننشئ كائن مستودع لتخزين المستخدمين:

\n
object UserRepository {\n    private val users = mutableListOf(\n        User(1, "إيفان إيفانوف", "ivan@example.com"),\n        User(2, "ماريا بيتروفا", "maria@example.com")\n    )\n\n    fun getAll(): List<User> = users.toList()\n\n    fun getById(id: Int): User? = users.find { it.id == id }\n\n    fun add(user: User): User {\n        users.add(user)\n        return user\n    }\n\n    fun delete(id: Int): Boolean = users.removeIf { it.id == id }\n}
\n

هذا حل بسيط، لكنه مثالي للتوضيح في غضون 30 دقيقة.

\n\n

الخطوة 3: إعداد المسارات (نقاط نهاية REST)

\n

الآن الجزء الممتع - لننشئ نقاط نهاية لعمليات CRUD. أضف ملف Routing.kt:

\n
import io.ktor.server.routing.*\nimport io.ktor.server.response.*\nimport io.ktor.server.request.*\n\nfun Application.configureRouting() {\n    routing {\n        route("/api/u                

المدونات

توصيات الكتب