مقدمة: REST API أسهل مما يبدو
\nيعتقد العديد من المطورين المبتدئين أن كتابة REST API بلغة Java هي مهمة صعبة تتطلب معرفة عميقة وساعات طويلة من العمل. في الواقع، باستخدام الأدوات الحديثة مثل Spring Boot، يمكنك إنشاء خدمة RESTful كاملة في غضون 30 دقيقة فقط. في هذه المقالة، سنشرح عمليًا كيفية كتابة REST API بلغة Java باستخدام الحد الأدنى من الأدوات. ستحصل على قالب جاهز يمكنك تكييفه مع مشاريعك الخاصة.
\nREST (نقل الحالة التمثيلية) هو نمط معماري يسمح للعملاء والخوادم بتبادل البيانات عبر HTTP. سنقوم بإنشاء API بسيط لإدارة قائمة المهام (To-Do). في نهاية المقالة، سيكون لديك خادم عامل قادر على إنشاء وقراءة وتحديث وحذف المهام (CRUD).
\n\nالخطوة 1: إعداد البيئة وإنشاء المشروع
\nللبدء، سنحتاج إلى:
\n- \n
- Java Development Kit (JDK) الإصدار 17 أو أعلى. \n
- IntelliJ IDEA (الإصدار المجتمعي) أو أي بيئة تطوير متكاملة أخرى. \n
- Maven لإدارة التبعيات. \n
- Postman أو متصفح للاختبار. \n
سننشئ مشروعًا باستخدام Spring Initializr (start.spring.io). اختر الإعدادات التالية:
\n- \n
- Project: Maven \n
- Language: Java \n
- Spring Boot: 3.2.x \n
- Dependencies: Spring Web, Spring Data JPA, H2 Database \n
قم بتنزيل ملف ZIP وفك ضغطه. افتح المشروع في IDE. سيكون الهيكل كالتالي:
\nsrc/\n └── main/\n ├── java/com/example/restapi/\n │ ├── RestapiApplication.java\n │ ├── controller/\n │ ├── model/\n │ └── repository/\n └── resources/\n └── application.properties\nهذه هي القاعدة التي سنبدأ منها. استغرق الإعداد دقيقتين فقط.
\n\nالخطوة 2: إنشاء نموذج البيانات والمستودع
\nلنبدأ بالنموذج. أنشئ فئة Task.java في مجلد model. ستكون هذه الكيان الذي يمثل المهمة:
package com.example.restapi.model;\n\nimport jakarta.persistence.*;\n\n@Entity\n@Table(name = "tasks")\npublic class Task {\n @Id\n @GeneratedValue(strategy = GenerationType.IDENTITY)\n private Long id;\n\n @Column(nullable = false)\n private String title;\n\n private boolean completed;\n\n // المنشئات\n public Task() {}\n\n public Task(String title, boolean completed) {\n this.title = title;\n this.completed = completed;\n }\n\n // الدوال الجالبة والضابطة\n public Long getId() { return id; }\n public void setId(Long id) { this.id = id; }\n public String getTitle() { return title; }\n public void setTitle(String title) { this.title = title; }\n public boolean isCompleted() { return completed; }\n public void setCompleted(boolean completed) { this.completed = completed; }\n}\nالآن، لننشئ المستودع. في مجلد repository، أنشئ الواجهة TaskRepository.java:
package com.example.restapi.repository;\n\nimport com.example.restapi.model.Task;\nimport org.springframework.data.jpa.repository.JpaRepository;\nimport org.springframework.stereotype.Repository;\n\n@Repository\npublic interface TaskRepository extends JpaRepository<Task, Long> {\n // JpaRepository توفر بالفعل جميع طرق CRUD الأساسية\n}\nفي هذه المرحلة، قمنا بوصف هيكل البيانات وطريقة التفاعل مع قاعدة البيانات. سيقوم Spring Data JPA تلقائيًا بإنشاء جدول في H2 وتوفير طرق findAll() و save() و deleteById() وغيرها. هذا سيوفر ساعات من الترميز اليدوي.
الخطوة 3: إنشاء المتحكم مع نقاط نهاية REST
\nالآن الجزء الأكثر إثارة للاهتمام — المتحكم. في مجلد controller، أنشئ الفئة TaskController.java. ستقوم بمعالجة طلبات HTTP:
المدونات
توصيات الكتب
اقرأ أيضًا