في هذه المقالة ، ستتعلم كيفية استخدام Speedment لإنشاء API CRUD REST كاملة لقاعدة بيانات.

أصبح من الواضح بشكل متزايد كل عام أن Spring Framework هو أحد أطر تطوير الويب Java الأكثر استخدامًا.
مع اقتراب العقد المقبل ، تلقت وحدة Spring's الأكثر شعبية ، Spring Boot ، مجرد تحديث رئيسي. الإصدار الجديد من Spring Boot "2.2.0" و 2020 متوافق تمامًا مع بعضهما البعض. لذلك ، قام فريق تطوير Speedment بسد الفجوة عن طريق تحديث المكون الإضافي Spring Boot.
إذا كانت هذه هي المرة الأولى التي تسمع فيها عن Speedment ، فستستمتع به كما نوضح كيف يتيح المكون الإضافي Spring Boot Speedment للمطورين إنشاء تطبيقات قواعد بيانات Spring دون عناء باستخدام Speedment ، ORM مع واجهة استعلام قوية تستند إلى Stream API.
حول السرعة
يمكن وصف السرعة بأنها ORM التي يستحقها مجتمع Java - مجموعة أدوات لمن يحبون التطور السريع والتطبيقات الأسرع.
باستخدام Java Stream API كوسيلة أساسية للتواصل مع قاعدة البيانات المحددة ، يتيح Speedment للمطورين ذوي الخبرة مع Java الشعور في المنزل. بالإضافة إلى واجهة برمجة التطبيقات سهلة الاستخدام ، يوفر Speedment للمطورين أداة رسومية تنشئ نموذج مجال لهم في ثوانٍ.
إذا كنت مهتمًا بـ Speedment ككل ، فانقر على الرابط التالي للحصول
على وثائق مفصلة مع أمثلة . ستركز بقية هذه المقالة على البرنامج المساعد Spring Boot.
الحذاء الربيعي: بداية أسرع
كان البرنامج الإضافي Speedment Spring Boot موجودًا لبعض الوقت ، لكن Speedment 3.2.2 قدم الوظيفة الرئيسية - القدرة على إنشاء واجهة برمجة تطبيقات CRUD REST بالكامل مباشرةً من نموذج قاعدة البيانات.
اعتمادًا على ما إذا كنت تبدأ من نقطة الصفر أو لديك بالفعل مشروع ، ستكون الخطوات مختلفة ، ولكن تأكد من أن عملية التكامل ستكون بسيطة بغض النظر عن حالة المشروع.
إذا كنت ترغب في دمج Spring Boot في مشروع Speedment حالي ، فأنت بحاجة إلى إضافة العنصرين التاليين إلى
pom.xml :
<plugin> <groupId>com.speedment.enterprise</groupId> <artifactId>speedment-enterprise-maven-plugin</artifactId> <version>${speedment.version}</version> <configuration> <components> component>com.speedment.enterprise.plugins.spring.SpringGeneratorBundle</component> </components> <appName>${project.artifactId}</appName> <packageName>${project.groupId}</packageName> </configuration> ... // Database connector dependency </plugin> <dependencies> ... <dependency> <groupId>javax.annotation</groupId> <artifactId>javax.annotation-api</artifactId> <version>1.3.1</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <version>2.2.1.RELEASE</version> </dependency> <dependency> <groupId>com.speedment.enterprise.plugins</groupId> <artifactId>spring-runtime</artifactId> <version>${speedment.version}</version> </dependency> ... </dependencies>
بعد إضافة هذه العناصر في التجديد التالي لنموذج المجال الخاص بك ، يجب إنشاء تكوين خاص بنابض. يتحكم التكوين الذي تم إنشاؤه في اتصال قاعدة البيانات وخصائص تسجيل الصناديق للعديد من المديرين الذين تم إنشاؤها بواسطة Speedment.
إذا بدأت تشغيل المشروع من البداية ، فانتقل إلى
مُهيئ المشروع ، حيث سيتم إنشاء مشروع جاهز لـ Spring Boot من أجلك. إن كيفية تكوين المشروع متروك لك ، ولكن لتضمين المكون الإضافي Spring Boot في المشروع الذي تم إنشاؤه ، تأكد من تحديد مربع الاختيار الموجود بجانب Spring في قسم الإضافات. عندما يناسبك تكوين المشروع ، انقر فوق الزر
تنزيل وستتلقى أرشيف المشروع جاهزًا للاستخدام.

CRUD مبسطة
بمجرد تثبيت المكوّن الإضافي ، ستتوفر بعض خيارات Spring Boot المحددة في أداة Speedment التي يمكنك استخدامها لتهيئة REST API. يمكنك تشغيل أداة Speedment عن طريق تشغيل الأمر التالي:
mvn speedment:tool
إذا كانت هذه هي المرة الأولى التي تستخدم فيها Speedment ، فقد ترغب في التعرف على سير العمل عن طريق اتباع
البرنامج التعليمي الموجز
Hello Speedment .
بشكل افتراضي ، لا تنشئ أداة Speedment واجهة برمجة تطبيقات REST. لإنشاء واجهة برمجة تطبيقات CRUD REST لجدول معين ، حدد الجدول في عرض الشجرة وحدد خانة الاختيار "
إنشاء @ RestController " إلى جانب خيار "
REST Enable إنشاء / تحديث / حذف ". عند النقر فوق
إنشاء ، سيتم
إنشاء مجموعة من تعيينات REST - عناوين URL التي تنفذ عمليات CRUD لجدول معين.

هذا كل شئ! الترميز اليدوي غير مطلوب. فقط قم بتشغيل مشروع Spring الذي تم إنشاؤه عن طريق تشغيل الأمر:
mvn spring-boot:run
إنشاء الكيانات باستخدام REST
لإنشاء كيان جديد باستخدام REST API الذي قمت بإنشائه ، يجب تنفيذ طلب POST على المسار المحدد في الأداة. افتراضيًا ، يطابق اسم هذا المسار اسم الجدول الخاص بك ، مع بادئة اسم المخطط الخاص بك. إذا قمت بإلغاء تحديد خانة الاختيار "
REST Endpoint " ، فيمكنك تحديد اسم مسار تعسفي. يجب أن يحتوي نص الطلب على أزواج قيمة المفتاح في كائن JSON ، حيث تكون قيم "
REST Field Name " من أداة Speedment هي المفاتيح.
على سبيل المثال ، إذا كان لدينا جدول يحمل اسم
شخص له
معرّف الأعمدة
والاسم والعمر ، فسنرسل الاستعلام التالي لإنشاء
شخص كيان جديد:
POST localhost:8080/db/person { "id": 1, "name": "Jane", "age": 25 }
أو
curl -d '{"id": 1,"name": "Jane","age": 25}' -H "Content-Type:application/json" -X POST localhost:8080/db/person
إذا تم إنشاء قيمة عمود
المعرف تلقائيًا (أو يستخدم تسلسلًا) ، فيمكنك استبعاده من نص POST. إذا كنت ترغب في استبعاد عمود معين بالقوة من نص POST ، فانقر فوق العمود المقابل في عرض شجرة الأدوات وألغ تحديد المربع "
تضمين في إنشاء نصوص " وأعد إنشاء نموذج المجال الخاص بك. من ناحية أخرى ، إذا كنت تريد التأكد من وجود عمود معين في نص POST عند تنفيذ الطلب ، فتحقق من "مطلوب في إنشاء نص" وأعد إنشاء نموذج المجال الخاص بك.

استرداد الكيانات باستخدام REST
للحصول على الكيان الذي تم إنشاؤه حديثًا ، يجب علينا تنفيذ طلب GET بنفس الطريقة التي تم استخدامها لإنشاء الكيان:
GET localhost:8080/db/person
أو
curl localhost:8080/db/person/1
يؤدي الطلب المكتمل إلى إرجاع JSON Array لجميع الكيانات الموجودة. في حالتنا ، فإنه سيعود مجموعة فقط مع الكيان الوحيد لدينا:
[ { "id": 1, "name": "Jane", "age": 25 } ]
المفاهيم المتقدمة مثل الفلاتر والفرز مفصلة في وثائق Speedment الرسمية.
تحديث الكيانات الموجودة باستخدام REST
يشبه تحديث كيان موجود باستخدام REST API إنشاء كيان. بدلاً من طلب POST ، نقوم بتنفيذ طلب PATCH ، ويتم توسيع المسار بمعرّف كيان. يعتمد معرف كياننا على عمود المفتاح الأساسي في هذا الجدول. نظرًا لأن عمود PK (المفتاح الأساسي) الخاص بنا هو نوع رقمي ، فسيكون معرف الكيان لدينا عددًا صحيحًا.
لتحديث الكيان الذي أنشأناه في مثالنا السابق ، سنقوم بتشغيل الاستعلام التالي:
PATCH localhost:8080/db/person/1 { "name": "Mike", "age": 43 }
أو
curl -d '{"name": "Jane","age": 25}' -H "Content-Type:application/json" -X PATCH localhost:8080/db/person/1
بشكل افتراضي ، يتم تضمين جميع الأعمدة في نص PATCH (باستثناء عمود المفتاح الأساسي) ، ولكنها غير مطلوبة. إذا كنت ترغب في استبعاد عمود معين قسريًا من نص الطلب ، فانقر فوق العمود المقابل في عرض شجرة الأدوات وألغ تحديد المربع "
تضمين في تحديث النص الأساسي " وأعد إنشاء نموذج المجال الخاص بك. من ناحية أخرى ، إذا كنت تريد التأكد من وجود عمود في نص الطلب ، فحدد "
مطلوب في تحديث النص الأساسي " وقم بتحديث نموذج المجال الخاص بك.
إزالة الكيانات باستخدام REST
إن إزالة كيان باستخدام REST API أمر بسيط للغاية - فنحن ننفذ طلب DELETE بنفس الطريقة المستخدمة لتحديث الكيانات.
لإزالة الكيان الذي أنشأناه وتحديثه في الأمثلة السابقة ، سنقوم بتشغيل الاستعلام التالي:
DELETE localhost:8080/db/person/1
أو
curl -X DELETE localhost:8080/db/person/1
ملخص
قد يكون إطلاق مشاريع جديدة في بعض الأحيان أمرًا مزعجًا. كمطورين ، نريد تجنب هذه المضايقات قدر الإمكان والانغماس مباشرةً في الترميز. مع المكون الإضافي الجديد لـ Boot Boot Spring Boot ، يمكن للمطورين تسريع إطلاق المشاريع الجديدة عن طريق إنشاء جميع التكوينات الضرورية ووحدات التحكم في REST مباشرةً من قاعدة البيانات.
نأمل أن تستمتع بهذا الدليل المختصر لميزات CRUD الجديدة التي يوفرها البرنامج المساعد Speedment Spring Boot. إذا كنت مهتمًا بتوضيح أكثر تفصيلًا للوظائف الجديدة ، فانتقل إلى
الوثائق الرسمية ، حيث ستجد تفسيرات وأمثلة مفصلة لوظائف CRUD الجديدة.
قراءة إضافية
إنشاء REST API الجزء 4: معالجة طلبات POST و PUT و DELETEبناء تطبيق CRE RESTful Spring Boot MVC للتطبيق: بدء استخدام Java Spring