Powered by ZigaForm version 3.8

الأسئلة الأكثر تداولا حول لغة GraphQL

أسئلة حول لغة GraphQL

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

ماهي العلاقة بين لغة GraphQL وقواعد البيانات graph؟

في الحقيقة، لا توجد أيّ علاقة بين GraphQL وقواعد البيانات من نوع graph مثل قاعدة البيانات  Neo4j. ويرجع التشابه في الأسماء إلى أن لغة GraphQL تعتمد على فكرة البحث عن البيانات داخل API من خلال الإنتقال من الحقول الرئيسية إلى الحقول الفرعية مما يشكل مخطط شبيها ب”graph”. وأما “QL” فتعني لغة استعلام.

إذا كنت أستخدم REST ولا أعاني من أيّة مشاكل، فهل يجب أن أنتقل إلى العمل بلغة GraphQL؟

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

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

هل يمكنني استخدام GraphQL من دون React أو Relay أو غيرها

نعم تستطيع! في الحقيقة، يمكنك استخدام GraphQL مع أي مكتبة library على أي منصة platform كانت. كما يمكن استخدام عميل GraphQL يساعدك على البحث عن البيانات وتحميلها باستخدام لغة GraphQL(مثال Apollo). علاوة على ذلك، يمكنك أن تكتب استعلامات GraphQL بمفردك ودون الحاجة إلى أي أداة ومن ثم ترسلها إلى خادم GraphQL.

لغة GraphQL تم تطويرها من طرف فيسبوك وأنا لا أثق بفيسبوك؟

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

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

هل استخدام GraphQL لتحميل البيانات آمن ؟

تتيح لك لغة GraphQL كتابة resolvers بمفردك. وعند هذا المستوى، يمكنك معالجة أي مخاوف أمنية لديك.

على سبيل المثال، إذا سمحت للعميل بتحديد الحد أقصى limit لعدد الوثائق التي يتلقاها، فبإمكانك أن تؤطر هذا العدد لتجنب الإختراقات الأمنية من نوع denial-of-service-style.

ما الذي أحتاجه للشروع في استخدام GraphQL؟

بصفة عامة، تحتاج إلى مكونين أساسيين لتتمكن من تطوير وتشغيل تطبيق معتمد على GraphQL:

  • خادم GraphQL يقوم بخدمة API.
  • عميل GraphQL يتصل بخادم GraphQL.

الآن وقد أجبنا على أشهر الأسئلة والإستفسارات المتعلقة بلغة GraphQL وعرفنا الأدوات المطلوبة لتطوير تطبيق GraphQL، دعونا نتعرف على أشهر الخوادم servers والعملاء clients الخاصة بلغة الإستعلام GraphQL.

خوادم GraphQL

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

GraphQL-JS

 

يعتبر GraphQL-JS التطبيق المرجع والأصل للغة الإستعلام GraphQL. ويمكنك استخدامه مع  express-graphql لإنشاء خادم API.

GraphQL-Server

يمتلك فريق Apollo خادم GraphQL خاص به. وهو غير شامل ومتكامل مثل الخادم الأصلي (GraphQL-JS)، ولكنه مدعوم بشكل كبير من طرف المطورين. كما تتوفر حوله العديد من الوثائق.

منصات أخرى

يحتوي موقع GraphQL.org على خوادم GraphQL أخرى. وهي تطبيقات للغة GraphQL خاصة بلغات برمجة مختلفة مثل JavaScript، Ruby وغيرها…

عملاء GraphQL

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

Relay

 

Relay هو عميل GraphQL الخاص بفيسبوك. وهو مصمم خصيصا لتلبية احتياجات فيسبوك الخاصة.

عميل Apollo

دخل Apollo حديثا إلى عالم GraphQL. ولم يكد يظهر حتى تم الإستيلاء عليه بسرعة. ويتكون Apollo من مكونين رئيسيين:

  • Apollo-client : والذي يتيح لك تشغيل استعلامات GraphQL في متصفح الويب ومن ثم تخزين البيانات.
  • رابط  connector لمنصة برمجة الواجهات الأمامية الخاصة بك مثل : React-Apollo، Angular-Apollo وغيرها.

يقوم عميل Apollo بتخزين البيانات باستخدام  Redux. وهي مكتبة رائعة وموثوقة لإدارة وتخزين البيانات.  

أكتب تعليق