في عالم تطوير الويب المتغير باستمرار، تعتبر الكفاءة والأداء ليست مجرد أهداف، بل ضروريات. تقدم لكم FastAPI وgRPC، وهما تقنيتان حديثتان تُحدثان ثورة في الطريقة التي يبني بها المطورون ويتفاعلون مع واجهات برمجة التطبيقات (APIs). تم تصميم FastAPI كإطار عمل ويب حديث وعالي الأداء بلغة بايثون، وقد اكتسب شعبية بسرعة لسهولة استخدامه وسرعته المبهرة. عند دمجه مع gRPC، نظام استدعاء الإجراءات عن بُعد القوي من Google، فإنه يخلق تآزرًا يعزز قدرات واجهة برمجة التطبيقات الخاصة بك.
ستتناول هذه المقالة تفاصيل FastAPI وgRPC، موضحة كيف يعملان بشكل مستقل ومتزامن لتوفير تجربة تطوير سلسة. سواء كنت مطورًا متمرسًا أو مجرد مبتدئ، فإن فهم قوة FastAPI مع gRPC أمر بالغ الأهمية لبناء واجهات برمجة التطبيقات القابلة للتوسع والفعالة والموثوقة. لذا، دعونا نبدأ هذه الرحلة لاكتشاف كيف يمكن لهذه التقنيات أن ترتفع بمشاريعك إلى آفاق جديدة.
ما هو gRPC؟
gRPC هو إطار عمل حديث ومفتوح المصدر لاستدعاء الإجراءات عن بُعد (RPC) تم تطويره بواسطة Google، ويمكن تشغيله في أي بيئة وربط الخدمات في مراكز البيانات وعبر الحوسبة الموزعة والأجهزة. يدعم توازن الحمل، والتتبع، والتحقق من الصحة، والمصادقة باستخدام Protocol Buffers والبث ثنائي الاتجاه.

بالمقارنة مع REST (نقل الحالة التمثيلية)، الذي هو نمط معماري لبناء خدمات ويب، يعتبر gRPC بروتوكولًا يحدد كيفية تواصل العملاء والخوادم مع بعضهم البعض. يستخدم gRPC Protocol Buffers، وهي مجموعة أدوات لغوية قوية للتسلسل الثنائي، لتحديد هيكل الخدمة والرسائل. يمكنه توليد سوابق عملاء وخوادم نموذجية لخدمتك تلقائيًا بلغات ومنصات متنوعة.
gRPC هو إطار عمل RPC عالي الأداء ومفتوح المصدر ونظامي عبر المنصات يمكن استخدامه لربط الخدمات في مراكز البيانات والحوسبة الموزعة والأجهزة.
لماذا نستخدم gRPC؟
gRPC هو إطار استدعاء إجراءات عن بُعد (RPC) حديث وعالي الأداء يكتسب شهرة بين المطورين. يوفر حلاً قوياً لهياكل العميل-الخادم مثل واجهات برمجة التطبيقات والميكرو خدمات. يستخدم gRPC HTTP/2 كبروتوكول النقل الأساسي له، مما يجعله أسرع وأكثر كفاءة من واجهات برمجة التطبيقات REST التقليدية.
بعض مزايا استخدام gRPC تشمل:
- الأداء: gRPC أسرع من واجهات برمجة التطبيقات REST لأنه يستخدم بيانات ثنائية بدلاً من بيانات نصية، مما يقلل من حجم الحمولة وعدد الرحلات المطلوبة لإكمال الطلب.
- التشغيل البيني: يدعم gRPC لغات برمجة متعددة، مما يجعله سهلًا لبناء واجهات برمجة تطبيقات يمكن استخدامها عبر منصات وأجهزة مختلفة.
- سهولة الاستخدام: يوفر gRPC واجهة برمجة تطبيقات بسيطة وبديهية تجعل من السهل بناء وصيانة واجهات برمجة التطبيقات.
- البث: يدعم gRPC كل من البث من جانب العميل ومن جانب الخادم، مما يسمح بتواصل أكثر كفاءة بين العملاء والخوادم.
باختصار، gRPC هو إطار RPC قوي وفعال يوفر بديلاً حديثًا لواجهات برمجة التطبيقات REST التقليدية. وهو مفيد بشكل خاص لبناء واجهات برمجة التطبيقات التي تتطلب أداءً عاليًا وتشغيلًا بين أنظمة مختلفة.
ما هو FastAPI gRPC؟
FastAPI مع gRPC هو مزيج قوي يدمج نقاط القوة في كلا التقنيتين لبناء ميكرو خدمات عالية الأداء. FastAPI هو إطار عمل ويب حديث وسريع لبناء واجهات برمجة التطبيقات بلغة بايثون، معروف بسهولة استخدامه وأدائه. gRPC هو إطار عمل RPC شامل عالي الأداء ومفتوح المصدر يستخدم Protocol Buffers لتسلسل البيانات الهيكلية.
كيف يعمل FastAPI gRPC؟
يعمل FastAPI مع gRPC عن طريق دمج بساطة وسرعة FastAPI في إنشاء واجهات برمجة التطبيقات مع فوائد الأداء لـ gRPC لاستدعاءات الإجراءات عن بُعد. إليك شرح خطوة بخطوة لكيفية عملهما معًا:
تعريف الخدمة والرسائل: باستخدام Protocol Buffers، تقوم بتعريف خدمة gRPC وأنواع الرسائل التي تستخدمها. يتم ذلك في ملف .proto
، والذي هو ملف تعريف بيانات هيكلي.
توليد الشيفرة: يتم استخدام ملف .proto
لتوليد شيفرة العميل والخادم. تتضمن هذه الشيفرة فصول بيانات وفصول قاعدة الخدمة التي تقوم بتمديدها لتنفيذ منطق الأعمال.
تنفيذ الخادم: على جانب الخادم، تقوم بتنفيذ واجهات الخدمة المعرفة في ملف .proto
. يمكن استخدام FastAPI لإعداد نقاط نهاية REST، بينما يتعامل gRPC مع الاتصال بين الخدمات.
إنشاء العميل: يستخدم العميل الشيفرة المولدة لإجراء استدعاءات RPC إلى الخادم. يمكن القيام بذلك من داخل تطبيق FastAPI أو أي عميل آخر يدعم gRPC.
تشغيل الخادم: يعمل خادم gRPC جنبًا إلى جنب مع تطبيق FastAPI، مستمعًا لاستدعاءات RPC الواردة من العملاء.
التواصل: يرسل العميل طلبًا إلى الخادم باستخدام بروتوكول gRPC، الذي يستخدم HTTP/2 كبروتوكول النقل الخاص به، مما يتيح ميزات مثل تعدد الإرسال وضغط الرأس.
يسمح دمج FastAPI مع gRPC بإنشاء واجهات برمجة التطبيقات التي لا تكون سهلة البناء والتوثيق فحسب، بل تكون أيضًا فعالة للغاية من حيث التواصل بين الخدمات، خاصة عند التعامل مع اتصالات ذات تردد عالٍ أو كميات كبيرة من البيانات.
كيفية استخدام FastAPI gRPC
استخدام FastAPI مع gRPC يتضمن عدة خطوات، من إعداد بيئتك إلى تعريف خدماتك وتشغيل الخادم. إليك دليل مبسط للبدء:
إعداد البيئة: ابدأ بتثبيت الحزم اللازمة لـ FastAPI وgRPC:
pip install fastapi uvicorn grpcio grpcio-tools
تعريف خدماتك: أنشئ ملف .proto
حيث ستقوم بتعريف خدمات gRPC والرسائل باستخدام بناء جملة Protocol Buffers.
توليد الشيفرة: استخدم الأمر grpc_tools.protoc
لتوليد الشيفرة بلغة بايثون من ملف .proto
الخاص بك:
python -m grpc_tools.protoc -I. --python_out=. --grpc_python_out=. your_service.proto
تنفيذ خادم gRPC: اكتب شيفرة الخادم عن طريق تمديد فصل قاعدة الخدمة المولد وتنفيذ طرق الخدمة.
إنشاء نقاط نهاية FastAPI: عرّف مسارات FastAPI التي ستتفاعل مع خادم gRPC الخاص بك، جالبة الطلبات HTTP وتحويلها إلى استدعاءات gRPC.
تشغيل الخادم: ابدأ تطبيق FastAPI الخاص بك مع Uvicorn، الذي سيقدم نقاط النهاية HTTP الخاصة بك ويتعامل مع اتصالات gRPC:
uvicorn main:app --reload
اختبر FastAPI gRPC الخاص بك مع Apidog
Apidog هو أداة اختبار واجهات برمجة التطبيقات قوية تقدم مجموعة واسعة من الميزات لاختبار وتصحيح gRPC. Apidog تقدم أداة مجانية لاختبار FastAPI gRPC، والتي هي حاليًا في مرحلة اختبار بيتا. تدعم أنواعًا متعددة من طرق gRPC، مثل unary، البث من الخادم، البث من العميل، البث ثنائي الاتجاه، والتعاون على واجهات برمجة تطبيقات gRPC.
البث من الخادم
كما يوحي الاسم، يتضمن البث من الخادم إرسال بيانات استجابة متعددة في طلب واحد. على سبيل المثال، قد يتضمن الاشتراك في جميع بيانات أسعار المعاملات للأسهم ضمن إطار زمني مدته دقيقة واحدة.

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

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

التعاون على واجهات برمجة تطبيقات gRPC
يمكن لـ Apidog توليد مستندات واجهات gRPC سهلة القراءة من ملفات .proto، مما يسهل التعاون بين الفرق على الواجهات. انقر على زر القائمة على الجانب الأيمن من الواجهة للحصول على رابط التعاون ومشاركته مع أعضاء الفريق الآخرين لضبط نهج تصحيح واجهة البرمجة.

الخاتمة
كما استكشفنا خلال هذه المقالة، تمثل FastAPI وgRPC مزيجًا قويًا لبناء واجهات برمجة التطبيقات الحديثة والفعالة والقابلة للتوسع. توفر تصميم FastAPI البديهي والتحقق التلقائي، مع بروتوكول الاتصال القوي لـ gRPC، الأدوات التي يحتاجها المطورون لإنشاء خدمات عالية الأداء يمكنها تلبية متطلبات عالم البيانات الحالي.
يمكّن التآزر بين هاتين التقنيتين تجربة تطوير سلسة، مما يتيح التكرار السريع ونشر الخدمات التي تتمتع بالموثوقية وسهولة الصيانة. سواء كنت تبني ميكرو خدمة صغيرة أو نظامًا موزعًا كبيرًا، فإن دمج FastAPI مع gRPC يوفر طريقًا لتحقيق أهدافك بثقة ودقة.
من خلال اتباع الممارسات الأفضل واستخدام أدوات مثل Apidog، يمكنك ضمان أن يكون شفرة gRPC الخاصة بك آمنة وفعالة.