فهم طريقة عمل واجهة برمجة التطبيقات API

ما هي واجهة برمجة التطبيقات API؟ وما أهميتها وكيف تعمل؟
ما هي واجهة برمجة التطبيقات API؟ وما أهميتها وكيف تعمل؟

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

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

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

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

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

أنواع واجهات برمجة تطبيقات API حسب حالة الاستخدام

واجهات برمجة تطبيقات الويب

واجهات برمجة تطبيقات الويب هي واجهات برمجة يمكن الوصول إليها عبر بروتوكول HTTP. تحدد واجهات برمجة التطبيقات هذه نقاط النهاية وتنسيقات الطلب والاستجابة المقبولة. تُستخدم بشكل أساسي للتواصل مع متصفح الويب ، على سبيل المثال لعرض الإشعارات أو تخزين البيانات المؤقتة. هذا النوع من API موجود في كل مكان على الإنترنت. هم الذين يسمحون ، على وجه الخصوص ، بدمج الموارد الخارجية في موقع مثل تعليقات Facebook أو المنشورات أو مقاطع الفيديو.

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

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

واجهات برمجة تطبيقات النظام

واجهة برمجة تطبيقات النظام هي طبقة أو واجهة مبنية فوق نظام لإدارة بشكل خاص:

  • معلمات الاتصال.
  • تعليمات من تطبيق مستخدم أو جهاز مثل لوحة المفاتيح أو شاشة اللمس ؛
  • التشغيل والمتغيرات الداخلية للنظام.

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

واجهات برمجة التطبيقات حسب نوع البروتوكول

واجهات برمجة تطبيقات SOAP

SOAP لـ Simple Object Access Protocol هو بروتوكول لتبادل المعلومات يعتمد على تنسيق بيانات XML للإعلان عن الطلبات وتحديد أنواع الاستجابات المتوقعة. يستخدم SOAP نموذج استدعاء الإجراء البعيد (RPC) الذي تتلقى فيه الأساليب والوظائف المعلمات وتعيد النتائج.

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

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

واجهات برمجة تطبيقات مريحة

واجهة برمجة تطبيقات RESTful ، والتي تسمى أيضًا REST API ببساطة ، هي واجهة برمجية تتوافق مع قيود النمط المعماري REST (تحويل الحالة التمثيلية). تعمل هذه البنية على ضبط عمل واجهة برمجة التطبيقات.

تقوم واجهة برمجة تطبيقات RESTful بتقسيم المعاملة إلى سلسلة من الوحدات الصغيرة التي يدير كل منها جزءًا فرعيًا منها. توفر هذه النموذجية قدرًا كبيرًا من المرونة ، ولكنها توفر أيضًا تعقيدًا معينًا للتصميم. هذا هو السبب في أن العديد من الشركات مثل Amazon S3 أو OpenStack Swift أو Cloud Data Management Interface (CDMI) تقدم قوالب Rest API جاهزة للاستخدام للمطورين.

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

واجهات برمجة تطبيقات RPC

RPC لاستدعاء الإجراء البعيد هو بروتوكول شبكة يجعل من الممكن استدعاء الإجراءات عن بُعد. بشكل أساسي ، تسمح لك واجهات برمجة تطبيقات RPC بتنفيذ جزء من التعليمات البرمجية على جهاز كمبيوتر أو خادم بعيد. هذا النوع من RCP API هو الأبسط والأقدم. يعتمد على نسقي ترميز: XML (نتحدث بعد ذلك عن XML-RPC) أو JSON (JSON-RPC).

تتشابه واجهات برمجة تطبيقات RPC مع واجهات برمجة تطبيقات REST ، ولكنها ترتبط ارتباطًا وثيقًا بالنظام الأساسي ، مما يجعل صيانتها وتغييرات بنيتها وتطوراتها أكثر تعقيدًا.

أنواع API حسب التوفر

واجهات برمجة التطبيقات العامة

واجهات برمجة التطبيقات العامة ، والمعروفة أيضًا باسم Open APIs ، كما يوحي اسمها ، مفتوحة للمطورين الآخرين وشركات الجهات الخارجية مع الحد الأدنى من القيود. قد تتطلب التسجيل أو استخدام API أو مفتاح OAuth ، لكن بعضها شفاف تمامًا.

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

واجهات برمجة التطبيقات للشريك

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

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

واجهات برمجة التطبيقات الداخلية

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

واجهات برمجة التطبيقات المركبة

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

وأنت كمطور أو متخصص في تكنولوجيا المعلومات ، ما أنواع واجهات برمجة التطبيقات التي تعمل معها أكثر من غيرها في مشاريعك؟ ما رأيك في أولئك الذين قدموا؟ لا تتردد في مشاركة خبراتك معنا في منتدى تكنولوجيا المعلومات!

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

لماذا واجهات برمجة التطبيقات ؟

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

  • نقل التعليمات من المبرمج إلى البرنامج وتلقي رد فعلها ؛
  • إدراج المحتوى في خدمات الويب ؛
  • إعادة استخدام أكواد التطبيق عن طريق برامج التواصل ؛
  • التحكم في الوصول من قبل المبرمجين الآخرين.

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

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

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

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

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

ما هي بوابة API؟

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

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

مثال: واجهات برمجة التطبيقات وأدوات تطوير البرامج (SDK) لخرائط Google

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

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

كيف تختبر واجهات برمجة التطبيقات؟

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

يسمح Postman باختبار استدعاءات API المعرفة من قبل المستخدم. يمكن للمطورين استيراد واختبار مواصفات API الخاصة بهم. من ناحية أخرى ، يدعم Postman مخططات لتنسيقات مثل RAML و WADL و OpenAPI و GraphQL. وبالتالي فمن الممكن اختبار واجهات برمجة التطبيقات في مرحلتها الأولية أو في المرحلة النهائية من تطويرها.

يختلف هيكل تسعير ساعي البريد اعتمادًا على الحجم المطلوب. يمكن للفرق الصغيرة إنشاء واختبار واجهات برمجة التطبيقات مقابل 12 دولارًا أمريكيًا لكل مستخدم شهريًا بينما ستحصل المؤسسات الأكبر حجمًا على خدمات أكثر شمولاً مع Postman Business مقابل 24 دولارًا أمريكيًا شهريًا (لكل مستخدم). حزمة الشركة متاحة للشركات التي لديها أكثر من 100 مستخدم.

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

PostmanCURL
يبدأ السعر من 12 دولارًا أمريكيًا في الشهرمجاني ومفتوح المصدر
قائم على منصةأداة سطر الأوامر
يتيح لك Postman اختبار واجهات برمجة التطبيقات بالتفصيلغالبًا ما يتم استخدام CURL للبحث بسرعة عن رأس http
مقارنة بين Postman و CURL

واجهات برمجة التطبيقات هي فرص عمل جديدة

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

يمكن تحويل جميع البيانات أو الوظائف إلى واجهة برمجة تطبيقات ، ما عليك سوى تخيلها!