"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيف تعمل واجهات برمجة التطبيقات تحت الغطاء

كيف تعمل واجهات برمجة التطبيقات تحت الغطاء

تم النشر بتاريخ 2024-08-31
تصفح:107

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

1. يقدم العميل طلبًا

تخيل أنك تقوم بإنشاء تطبيق ويب يعرض بيانات الطقس. عندما ينقر المستخدم على زر لرؤية الطقس الحالي، يرسل تطبيقك طلبًا إلى نقطة نهاية واجهة برمجة التطبيقات، مثل https://api.weather.com/current.

ماذا يحدث هنا؟

  • طلب HTTP: يقوم العميل (التطبيق الخاص بك) بإنشاء طلب HTTP، مع تحديد الطريقة (على سبيل المثال، GET، POST)، وعنوان URL لنقطة النهاية، وأي رؤوس ضرورية (مثل التفويض أو نوع المحتوى).
  • الحمولة: إذا كان طلب POST، فقد يتضمن حمولة، مثل كائن JSON مع المعلمات (على سبيل المثال، { "city": "New York" }).

يتم بعد ذلك إرسال طلب HTTP هذا عبر الإنترنت إلى الخادم الذي يستضيف واجهة برمجة التطبيقات.

How APIs Work Under the Hood

2. بحث DNS: العثور على الخادم

قبل أن يصل طلبك إلى الخادم، يجب أن يعرف أولاً إلى أين يتجه. هذا هو المكان الذي يأتي فيه نظام اسم النطاق (DNS).

بحث DNS: يأخذ المتصفح أو تطبيق العميل المجال (على سبيل المثال، api.weather.com) ويستعلم عن خادم DNS للعثور على عنوان IP المقابل له. عنوان IP هذا هو الموقع الفعلي للخادم على الإنترنت.

How APIs Work Under the Hood

3. إنشاء اتصال

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

TCP Handshake: يقوم العميل والخادم بإنشاء اتصال باستخدام بروتوكول التحكم في الإرسال (TCP). يتضمن ذلك عملية من ثلاث خطوات تُعرف باسم مصافحة TCP:

  1. SYN: يرسل العميل طلب مزامنة (SYN) إلى الخادم.
  2. SYN-ACK: يعترف الخادم بهذا الطلب ويستجيب بـ SYN-ACK.
  3. ACK: يقر العميل باستجابة الخادم، ويكمل المصافحة.

بمجرد اكتمال هذه المصافحة، يتم إنشاء الاتصال ويمكن تبادل البيانات.

How APIs Work Under the Hood

4. يتلقى الخادم الطلب

مع إنشاء الاتصال، يتم إرسال طلب HTTP إلى الخادم.

المعالجة من جانب الخادم:

  • التوجيه: يتلقى الخادم الطلب ويوجهه إلى المعالج المناسب بناءً على نقطة النهاية (على سبيل المثال، /current في https://api.weather.com/current). قد يتضمن ذلك مطابقة نمط عنوان URL مع وحدة تحكم أو وظيفة معينة.
  • منطق وحدة التحكم: تقوم وحدة تحكم الخادم بمعالجة الطلب. قد يتضمن ذلك الاستعلام عن قاعدة بيانات لاسترداد البيانات، أو إجراء عمليات حسابية أو تحويلات للبيانات، أو الاتصال بخدمات داخلية أخرى لجلب معلومات إضافية.
  • المصادقة والتفويض: إذا كانت نقطة النهاية تتطلب مصادقة، فسيتحقق الخادم من بيانات اعتماد العميل. على سبيل المثال، إذا كان الطلب يتضمن مفتاح API أو رمز وصول، يتحقق الخادم من صلاحيته ويضمن أن العميل لديه الأذونات اللازمة للوصول إلى المورد المطلوب.

5. التحضير للاستجابة

بعد معالجة الطلب، يقوم الخادم بإعداد الرد.

كائن الاستجابة: يقوم الخادم بإنشاء كائن استجابة HTTP، بما في ذلك:

  • رمز الحالة: يشير إلى نتيجة الطلب (على سبيل المثال، 200 موافق، 404 لم يتم العثور عليه، 500 خطأ داخلي في الخادم).
  • العناوين: توفير بيانات وصفية حول الاستجابة، مثل نوع المحتوى (على سبيل المثال، application/json) أو Set-Cookie.
  • الجسم: يحتوي على البيانات التي يطلبها العميل، غالبًا بتنسيق JSON (على سبيل المثال، { "درجة الحرارة": "72 درجة فهرنهايت"، "الحالة": "مشمس" }).

6. إرسال الرد مرة أخرى

يرسل الخادم استجابة HTTP مرة أخرى إلى العميل عبر الاتصال القائم.

نقل البيانات: تنتقل هذه الاستجابة مرة أخرى عبر الإنترنت، ومن المحتمل أن تمر عبر أجهزة توجيه وبوابات مختلفة. وأخيراً يصل إلى العميل، الذي يقوم بمعالجة الاستجابة.

How APIs Work Under the Hood

7. يتلقى العميل الرد ويعالجه

بمجرد أن يتلقى العميل الرد، يمكنه معالجة البيانات وتحديث واجهة المستخدم.

تحديث واجهة المستخدم: في تطبيق الطقس الخاص بنا، يأخذ العميل بيانات درجة الحرارة من الاستجابة ويقوم بتحديث الشاشة لإظهار الطقس الحالي.

معالجة الأخطاء: إذا حدث خطأ ما (على سبيل المثال، أعاد الخادم رمز الحالة 404 أو 500)، فقد يعرض العميل رسالة خطأ أو يعيد محاولة الطلب.

8. إنهاء الاتصال

بعد اكتمال تبادل البيانات، يتم إغلاق الاتصال بين العميل والخادم.

إنهاء اتصال TCP: على غرار المصافحة، يتم إنهاء الاتصال باستخدام عملية من أربع خطوات:

  1. FIN: يرسل العميل طلب إنهاء (FIN).
  2. ACK: يعترف الخادم بطلب FIN.
  3. FIN: يرسل الخادم طلب FIN الخاص به.
  4. ACK: يقر العميل بطلب FIN الخاص بالخادم.

يضمن هذا الإغلاق المنظم انتهاء كلا الجانبين من إرسال البيانات.

How APIs Work Under the Hood

استكشاف الأخطاء وإصلاحها والمشكلات الشائعة

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

  • أخطاء الشبكة: يمكن أن تؤدي مهلة الاتصال أو فقدان الحزم أو المشكلات الأخرى المتعلقة بالشبكة إلى منع الطلب من الوصول إلى الخادم أو الاستجابة من الوصول إلى العميل.
  • فشل المصادقة/التفويض: يمكن أن تؤدي مفاتيح API أو الرموز المميزة أو الأذونات غير الكافية أو غير الصحيحة أو منتهية الصلاحية إلى أخطاء المصادقة أو التفويض.
  • أخطاء من جانب الخادم: قد يواجه الخادم مشكلات مثل فشل قاعدة البيانات، أو عدم توفر الموارد، أو أخطاء في المنطق من جانب الخادم، مما يؤدي إلى ظهور رموز حالة 5xx.
  • أخطاء من جانب العميل: قد يقدم العميل طلبات غير صالحة، مثل توفير معلمات غير صحيحة أو محاولة الوصول إلى موارد غير موجودة، مما يؤدي إلى رموز الحالة 4xx.

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

خاتمة

إن فهم كيفية عمل واجهة برمجة التطبيقات (API) تحت الغطاء يساعدك على تقدير التعقيدات التي ينطوي عليها حتى طلب HTTP البسيط. من عمليات بحث DNS إلى مصافحة TCP، والمعالجة من جانب الخادم إلى المعالجة من جانب العميل، هناك الكثير مما يحدث في كل مرة تصل فيها إلى نقطة نهاية واجهة برمجة التطبيقات.

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

بيان الافراج تم نشر هذه المقالة على: https://dev.to/shanu001x/how-apis-work-under-the-hood-68m?1 إذا كان هناك أي انتهاك، يرجى الاتصال بـ [email protected] لحذفه
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3