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

استدعاء API نموذجي

إذا كنت تعمل في أي مكان بالقرب من صناعة تطوير الويب ، فأنت متأكد من سماع هذه الرسائل الثلاثة سيئة السمعة: A. P. I.

يلقون بها المبتدئين والخبراء على حد سواء:

"لماذا يجب علي إجراء مكالمة API؟ هل لديه رقم؟ "

"ستؤدي المكالمة البسيطة إلى واجهة برمجة تطبيقات الطرف الثالث هذه الحيلة هنا."

"سنبني لك واجهة برمجة تطبيقات RESTful ؛ التأكد من أن نظامك الجديد يلعب بشكل جيد مع الخدمات الأخرى. "

على الرغم من أن واجهات برمجة التطبيقات قد تبدو مرعبة في البداية ، إلا أنها يمكن أن تغير حياتك حرفيًا كمطور.

لماذا ا؟ حسنًا ، يمكن لتعلم استخدام واجهات برمجة التطبيقات (APIs) بشكل صحيح أن يبسط سير العمل في التطوير ويسرعه ويعززه. بناء أو دمج واجهات برمجة التطبيقات يجلب فوائد لكل من العملاء ونفسك.

كمطورين ، تسمع النصيحة غالبًا: "لا تعيد اختراع العجلة".

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

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

هيا بنا ، هل نحن؟

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

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

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

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

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

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

ثانيًا ، تم حل العديد من مشكلات التطوير التي تواجهها بالفعل من قبل شخص ما.

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

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

واجهات برمجة التطبيقات على الويب ، صورة من MS

التعريف الرسمي (المضني) ينطبق على هذا النحو:

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

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

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

لإلقاء الضوء بشكل أفضل على واجهات برمجة التطبيقات ، دعنا نسرد ما لم تكن كذلك:

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

أنواع مختلفة من واجهات برمجة التطبيقات

لا يتم إنشاء جميع واجهات برمجة التطبيقات.

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

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

النهاية

هدف واجهات برمجة التطبيقات هو جعل حياتك كمطور أسهل. كيف يفعلون ذلك؟

من خلال تجميع الميزات / الوظائف الموضوعة معًا وفضح هذه الوظائف من خلال نقاط النهاية. هذه هي عادة أنماط URL المستخدمة للتواصل مع API.

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

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

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

طالما أنك تستخدم التنسيق الصحيح ، فستتمكن من استهلاكها. هنا ، "تستهلك" هي وسيلة خيالية لقول "استخدام أجزاء منها للتطبيق الخاص بك".

خلاصة القول هي: واجهة برمجة التطبيقات تشبه أي واجهة.

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

كيفية استخدام واجهات برمجة التطبيقات: أمثلة عملية

دعونا نتبادل نظرية بعض الممارسات السهلة الآن.

قراءة وثائق API

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

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

تصف المستندات أيضًا تنسيق الإخراج.

لاحظ كيف يتم ذكر شيء حول المنطق المستخدم لتشغيل هذه الوظائف.

على سبيل المثال ، إذا قمت بتشغيل وحدة التحكم في المستعرض لديك واكتب Math.sqrt (بدون تنفيذ الوظيفة) ، فسترى شيئًا مثل:

rt sqrt () {[الكود الأصلي]}

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

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

هناك الكثير من الأشياء التي يمكن القيام بها مع موفري واجهة برمجة التطبيقات الشائعة هناك.

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

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

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

إذا كنت ترغب في المتابعة ، فستحتاج إلى تنزيل عميل Postman.

تستهلك API العامة لجلب البيانات

مثالنا الأول سيكون بسيطًا جدًا ، لكنه لا يزال أكثر إثارة للاهتمام من مثال الرياضيات.

سوف نستخدم واجهة برمجة تطبيقات Dog!

ليس فقط واجهة برمجة تطبيقات مضحكة ، لكنها لا تتطلب أيضًا أي مصادقة.

بالإضافة إلى أنه واجهة HTTP REST. هذا يعني أنها واجهة برمجة تطبيقات على الويب. نظرًا لأنه مرتبط بهذه البيئة ، فإنه يتطلب منا الامتثال لبعض خصوصية البروتوكول.

في هذه الحالة ، هذا يعني استخدام أفعال HTTP مثل GET و PUT و POST و DELETE.

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

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

تستخدم واجهة المستخدم الخاصة بي السمة الداكنة ، لذا فقد تختلف قليلاً عن السمة الخاصة بك.

قد يكون هناك الكثير من المعلومات التي يجب هضمها في البداية هنا ، لذلك دعونا نبدأ مع VERB وعنوان URL.

يجب أن يكون الفعل الافتراضي GET. إذا كان الأمر كذلك ، يمكنك الاحتفاظ بها بهذه الطريقة وإدخال عنوان URL التالي: https://dog.ceo/api/breeds/list/all

ضرب "إرسال" وانفجار! يجب أن تتلقى استجابة مع البيانات المناسبة. فويلا! لقد أجريت للتو أول مكالمة لواجهة برمجة التطبيقات.

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

يمكنك اللعب مع الطرق المختلفة في وثائقهم للتعرف على البيئة.

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

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

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

سنستخدم الرمز فقط للتفاعل مع واجهة برمجة تطبيقات Snipcart. يمكنك إغلاق ساعي البريد ، ولكن إبقائه في متناول يديك. من الجيد استخدام هذه الأداة عند البدء بواجهة برمجة التطبيقات.

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

قم بإنشاء مجلد جديد لهذا المشروع. استخدم npm init في المجلد وقم بتشغيل محرر النصوص.

الآن قم بإنشاء ملف index.js ، ثم افتح package.jsonfile. في ذلك ، أضف الأسطر التالية في كائن المستوى العلوي:

"bin": {"خصومات": "./index.js"}

سنحتاج أيضًا إلى حزمة قائد لتحليل المدخلات من العميل. تشغيل تثبيت npm - حفظ قائد في المجلد الحالي.

سنستخدم أيضًا رزمة صغيرة لإنشاء معرفات. يمكنك تثبيته مع تثبيت npm - حفظ أقصر.

بينما نحن في ذلك ، لنقم أيضًا بتشغيل تثبيت npm - حفظ طلب lib. هذا سيسهل علينا إجراء مكالمات HTTP. قفز مرة أخرى في ملف index.js والصق هذا الرمز:

دعنا نركز فقط على وظيفة الطلب هنا.

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

ميزة API مثيرة لم نستخدمها بعد هي المصادقة.

وكانت الأمثلة الأخرى لدينا جميعها على واجهات برمجة التطبيقات العامة. هذه لا تتطلب المصادقة.

ولكن في الواقع ، فإن معظم واجهات برمجة التطبيقات التي ستستخدمها ربما تتطلب بعض المصادقة. إنه "نمط" قياسي في عالم API. لن يكون عملاؤنا سعداء إذا سمحنا لأي شخص بإنشاء خصومات في متجره! ؛)

لغرضنا ، نقوم بتمرير مفتاح API مباشرة في الطلب.

الصيحة - الخادم يتعرف علينا! يمكن بعد ذلك تنفيذ الطلب الذي تم تحديد نطاقه لحسابنا فقط.

إذا كنت ترغب في اختبار تطبيقنا الصغير ، يمكنك تشغيل npm install -g في دليل المشروع. ثم ، قم ببساطة بتشغيل الخصومات x لإنشاء خصومات x عدد المرات.

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

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

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

إغلاق الأفكار

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

بعض الوجبات السريعة:

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

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

هناك الكثير من الأشياء التي كان بإمكاننا تحسينها. فمثلا:

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

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

بعد فترة ، ستصبح فعالاً معهم.

وهنا تبدأ المتعة الحقيقية.

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

لقد نشرت هذا في الأصل على مدونة Snipcart وشاركته في نشرتنا الإخبارية.