كيفية دمج GraphQL مع Spring Boot للتطبيقات الحديثة

تعلم كيف يمكنك دمج GraphQL مع Spring Boot لتطوير واجهات برمجة التطبيقات بكفاءة ومرونة. يغطي هذا الدليل الشامل الإعداد، والمواضيع المتقدمة، وفوائد استخدام Apidog للاختبار والتوثيق. مثالي للمطورين العصريين الذين يبحثون عن تبسيط سير عمل واجهات برمجة التطبيقات الخاصة بهم.

Amir Hassan

Amir Hassan

28 مايو 2025

كيفية دمج GraphQL مع Spring Boot للتطبيقات الحديثة

مرحبًا بك في مستقبل تطوير واجهات برمجة التطبيقات! اليوم، سوف نستكشف المزيج القوي بين Spring Boot وGraphQL. إذا كنت مطورًا، فأنت تعرف كم هو مهم إنشاء واجهات برمجة تطبيقات فعالة ومرنة وقابلة للتوسع. مع ظهور GraphQL، ابتعد الكثيرون عن واجهات برمجة التطبيقات التقليدية REST لصالح هذا النهج الأكثر ديناميكية. وما هو أفضل من تنفيذ GraphQL مع Spring Boot، وهو إطار عمل قائم على Java يبسط عملية بناء التطبيقات القوية؟

في هذه المقالة، سنستكشف كيفية دمج GraphQL مع Spring Boot، مستفيدين من أفضل الأدوات في الصناعة. سنسلط الضوء أيضًا على كيفية استخدام أدوات مثل Apidog لتحسين سير عمل تطويرك. فلنبدأ!

💡
قم بتحسين سير عمل تطوير واجهات برمجة التطبيقات الخاصة بك مع Apidog. قم بتنزيل Apidog مجانًا اليوم ورفع مستوى مشاريعك في GraphQL وSpring Boot إلى المستوى التالي!
button

لماذا GraphQL؟

قبل أن نغوص في التفاصيل التقنية، لنفهم لماذا GraphQL يحظى بشعبية كبيرة.

الموقع الرسمي لـ GraphQL

المرونة والكفاءة

تتيح GraphQL للعملاء طلب ما يحتاجونه بالضبط ولا شيء أكثر. هذا يقلل من كمية البيانات المنقولة عبر الشبكة، مما يجعل تطبيقاتك أسرع وأكثر كفاءة.

مخطط مُحدد بشكل قوي

مع GraphQL، تقوم بتعريف مخطط يحدد قدرات واجهة برمجة التطبيقات الخاصة بك. هذا المخطط هو عقد بين العميل والخادم، مما يضمن أن يفهم كلا الجانبين هيكل البيانات المتبادلة.

لغة استعلام قوية

تعتبر لغة استعلام GraphQL قوية للغاية. إنها تسمح للعملاء بفرض الاستعلامات وجلب موارد متعددة في طلب واحد، مما يقلل من عدد المكالمات على الشبكة ويجعل تطبيقاتك أكثر استجابة.

المجتمع والنظام البيئي

يمتلك GraphQL مجتمعًا حيويًا ونظامًا بيئيًا متناميًا من الأدوات والمكتبات. هذا يعني أنك ستتمتع بالوصول إلى ثروة من الموارد والدروس والدعم.

بدء العمل مع Spring Boot وGraphQL

الآن بعد أن غطينا الأساسيات، دعنا نغوص في كيفية إعداد GraphQL مع Spring Boot.

شعار GraphQL وSpring

الخطوة 1: إعداد مشروع Spring Boot الخاص بك

أولاً، تحتاج إلى إنشاء مشروع Spring Boot. إذا كنت معتادًا على Spring Boot، فأنت تعرف كم هو سهل البدء. إذا لم تكن، فلا تقلق، سأساعدك!

إنشاء مشروع جديد: استخدم Spring Initializr لإنشاء مشروع Spring Boot جديد. يمكنك القيام بذلك من واجهة الويب على start.spring.io.

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

توليد المشروع: انقر على "توليد" لتنزيل مشروعك كملف ZIP. قم باستخراجه وفتحه في بيئتك المفضلة.

Spring initializr

الخطوة 2: تكوين GraphQL في Spring Boot

الآن بعد أن تم إعداد مشروعك، دعنا نقوم بتكوين GraphQL.

إضافة تبعيات GraphQL: إذا لم تقم بإضافة تبعيات GraphQL في الإعداد الأولي، أضفها إلى ملف pom.xml الخاص بك:

<dependency>
    <groupId>com.graphql-java-kickstart</groupId>
    <artifactId>graphql-spring-boot-starter</artifactId>
    <version>11.1.0</version>
</dependency>
<dependency>
    <groupId>com.graphql-java-kickstart</groupId>
    <artifactId>graphql-spring-boot-starter-websocket</artifactId>
    <version>11.1.0</version>
</dependency>

تعريف المخطط الخاص بك: أنشئ ملف schema.graphqls في دليل src/main/resources. سيحدد هذا الملف مخطط GraphQL الخاص بك. إليك مثال بسيط:

type Query {
    hello: String
}

إنشاء حلّال: في Spring Boot، تقوم بإنشاء حلّالات لمعالجة استعلامات GraphQL. أنشئ فئة HelloWorldResolver:

package com.example.demo;

import com.coxautodev.graphql.tools.GraphQLQueryResolver;
import org.springframework.stereotype.Component;

@Component
public class HelloWorldResolver implements GraphQLQueryResolver {
    public String hello() {
        return "مرحبًا بالعالم!";
    }
}

تشغيل التطبيق الخاص بك: ابدأ تطبيق Spring Boot الخاص بك. يمكنك الآن الوصول إلى GraphQL Playground على http://localhost:8080/graphql.

الخطوة 3: اختبار واجهة برمجة التطبيقات GraphQL الخاصة بك

مع تشغيل واجهة برمجة التطبيقات GraphQL الخاصة بك، حان الوقت لاختبارها. تعتبر GraphQL Playground أداة ممتازة لذلك. يمكنك إرسال استعلامات ورؤية النتائج في الوقت الفعلي.

إليك استعلام بسيط لتبدأ به:

{
    hello
}

يجب أن ترى الاستجابة:

{
  "data": {
    "hello": "مرحبًا بالعالم!"
  }
}

تعزيز تطويرك مع Apidog

بينما يعتبر إعداد GraphQL مع Spring Boot أمرًا مباشرًا، يمكن أن يكون اختبار ووثّق واجهات برمجة التطبيقات الخاصة بك تحديًا. هنا يأتي دور Apidog.

ما هو Apidog؟

Apidog هو أداة قوية لتطوير واجهات برمجة التطبيقات تساعدك في تصميم وتوثيق واختبار ومحاكاة واجهات برمجة التطبيقات. يتكامل بشكل سلس مع GraphQL، مما يجعله أداة أساسية لتطوير واجهات برمجة التطبيقات الحديثة.

فوائد استخدام Apidog

التصميم والتوثيق: يوفر Apidog واجهة بديهية لتصميم وتوثيق واجهات برمجة التطبيقات الخاصة بك. يمكنك تعريف مخطط GraphQL الخاص بك، والاستعلامات، والتغييرات في بيئة سهلة الاستخدام.

الاختبار: مع Apidog، يمكنك إنشاء وتشغيل اختبارات آلية لواجهات برمجة التطبيقات GraphQL الخاصة بك. هذا يضمن أن تعمل واجهات برمجة التطبيقات كما هو متوقع ويساعد في اكتشاف الأخطاء مبكرًا في عملية التطوير.

المحاكاة: يتيح لك Apidog إنشاء خوادم محاكاة لواجهات برمجة التطبيقات الخاصة بك. هذا مفيد بشكل خاص أثناء التطوير عندما قد لا تكون خدمات الخلفية جاهزة.

التعاون: يسهل Apidog التعاون بين أعضاء الفريق من خلال توفير مساحة عمل مشتركة لتطوير واجهات برمجة التطبيقات.

بدء العمل مع Apidog

للشروع في استخدام Apidog، اتبع هذه الخطوات البسيطة:

لإنشاء طلب GraphQL جديد في مشروع، انقر على "Body" → "GraphQL" بالتتابع.

إنشاء طلب GraphQL جديد

أدخل استعلامك في مربع الاستعلام في علامة "تشغيل". يمكنك أيضًا النقر على زر استرداد المخطط اليدوي في مربع الإدخال لتمكين ميزة "إكمال التعليمات البرمجية" لتعبيرات الاستعلام، مما يساعد في إدخال بيانات الاستعلام.

طلب GraphQL

تدعم بيانات الاستعلام استخدام متغيرات GraphQL لطلبات البيانات. للرجوع إلى الاستخدام المحدد، يرجى الرجوع إلى بنية GraphQL.

طلب GraphQL

من خلال استخدام Apidog، يمكنك تبسيط عملية تطوير واجهات برمجة التطبيقات الخاصة بك وضمان أن تكون واجهات برمجة التطبيقات GraphQL الخاصة بك قوية ومُوثّقة جيدًا.

مواضيع متقدمة في Spring Boot وGraphQL

الآن بعد أن لديك فهمًا أساسيًا لكيفية إعداد GraphQL مع Spring Boot، دعنا نستكشف بعض المواضيع المتقدمة.

التصفّح والتصفية

أحد نقاط القوة في GraphQL هو قدرته على التعامل مع الاستعلامات المعقدة. تعتبر التصفّح والتصفية متطلبات شائعة لواجهات برمجة التطبيقات الحديثة.

التصفّح: لتنفيذ التصفّح، يمكنك استخدام مكتبات مثل graphql-java وgraphql-java-tools. إليك مثال:

type Query {
    users(page: Int, size: Int): [User]
}
public List<User> getUsers(int page, int size) {
    Pageable pageable = PageRequest.of(page, size);
    Page<User> userPage = userRepository.findAll(pageable);
    return userPage.getContent();
}

التصفية: للتصفية، يمكنك استخدام أنواع الإدخال في GraphQL:

input UserFilter {
    name: String
    age: Int
}

type Query {
    users(filter: UserFilter): [User]
}
public List<User> getUsers(UserFilter filter) {
    return userRepository.findByFilter(filter);
}

معالجة الأخطاء

تعتبر معالجة الأخطاء بشكل صحيح أمرًا حيويًا لأي واجهة برمجة تطبيقات. في GraphQL، يمكنك تحديد رسائل الأخطاء المخصصة واستخدام معالجات الاستثناءات لإدارة الأخطاء بسلاسة.

رسائل الخطأ المخصصة: يمكنك تحديد رسائل الخطأ المخصصة في الحلّالات الخاصة بك:

public String hello() {
    if (someCondition) {
        throw new RuntimeException("رسالة خطأ مخصصة");
    }
    return "مرحبًا بالعالم!";
}

معالجات الاستثناءات: استخدم آلية معالجة الاستثناءات الخاصة بـ Spring لإدارة الأخطاء:

@ControllerAdvice
public class GraphQLExceptionHandler {

    @ExceptionHandler(RuntimeException.class)
    public GraphQLError handleRuntimeException(RuntimeException e) {
        return new GenericGraphQLError(e.getMessage());
    }
}

الاشتراكات

تكوين WebSocket: تأكد من أنك قد أضفت تبعية graphql-spring-boot-starter-websocket.

تعريف الاشتراكات: أضف الاشتراكات إلى مخططك:

type Subscription {
    messageAdded: Message
}

إنشاء ناشر: استخدم ناشرًا لإرسال التحديثات:

@Component
public class MessagePublisher {
    private final Publisher<Message> publisher;

    public MessagePublisher(Publisher<Message> publisher) {
        this.publisher = publisher;
    }

    public void publishMessage(Message message) {
        publisher.publish(message);
    }
}

إنشاء حلّال اشتراكات: التعامل مع الاشتراكات في الحلّال الخاص بك:

@Component
public class MessageSubscriptionResolver implements GraphQLSubscriptionResolver {
    private final MessagePublisher messagePublisher;

    public MessageSubscriptionResolver(MessagePublisher messagePublisher) {
        this.messagePublisher = messagePublisher;
    }

    public Publisher<Message> messageAdded() {
        return messagePublisher.getPublisher();
    }
}

الخاتمة

إن دمج GraphQL مع Spring Boot يغير قواعد اللعبة في تطوير واجهات برمجة التطبيقات. يوفر وسيلة مرنة وفعالة وقوية لبناء واجهات برمجة التطبيقات التي تلبي متطلبات التطبيقات الحديثة. من خلال الاستفادة من أدوات مثل Apidog، يمكنك أيضًا تبسيط عملية تطويرك، وضمان أن تكون واجهات برمجة التطبيقات الخاصة بك موثقة جيدًا ومختبرة وجاهزة للإنتاج.

فما الذي تنتظره؟ انطلق في عالم Spring Boot وGraphQL، وشاهد كيف يغير سير عمل تطوير واجهات برمجة التطبيقات الخاصة بك. ولا تنسَ تنزيل Apidog مجانًا لتحسين تجربتك في التطوير بشكل أكبر.

button

ممارسة تصميم API في Apidog

اكتشف طريقة أسهل لبناء واستخدام واجهات برمجة التطبيقات