ربما تكون قد سمعت بمصطلحات API أو Public API أو Web API من قبل. فغالبًا ما تستخدم الشركات المُصنّعة للبرامج إحداها عند التحدث عن تطبيق/نظام تشغيل/موقع ويب. ولكن هل تساءلت يومًا ما هي واجهة برمجة التطبيقات (API) بالفعل، أو كيفية استخدامها؟
ما هي API؟
API (واجهة برمجة التطبيقات) عبارة عن تقنية تسمح للتطبيقات بالوصول إلى البيانات والتفاعل مع مكونات البرامج الخارجية أو أنظمة التشغيل أو الوظائف المصغرة.
بعبارة أبسط، تنقل واجهة برمجة التطبيقات (API) استجابة المستخدم للنظام وترسل استجابة النظام إلى المستخدم مرة أخرى. على سبيل المثال، عند نقرك فوق “إضافة إلى عربة التسوق” تخبر واجهة برمجة التطبيقات (API) المتجر الإلكتروني أنك أضفت منتجًا إلى سلة التسوق الخاصة بك؛ فيضع المنتج في سلة التسوق، ثم يُحدّث بياناتها.
ملاحظة: يخلط البعض بين الوظائف المصغرة “microservices” وواجهة برمجة التطبيقات “API”. لكنهما ليسا الشيء نفسه؛ ففي حين تُعدّ (الوظائف المصغرة) نمط أو هيكلية تقسّم الوظائف داخل تطبيق ويب. تُعتبر (واجهة برمجة التطبيقات) الإطار الذي يتفاعل فيه المطورون مع تطبيق الويب.
تتيح واجهة برمجة التطبيقات للمطور إجراء “اتصال” أو “طلب” لإرسال المعلومات أو تلقيها. يتمّ هذا الاتصال باستخدام لغة برمجة تُدعى”JSON“. يمكن استخدامه أيضًا لعمل إجراء محدد مثل تحديث البيانات أو حذفها. هناك أربع طرق طلب أساسية يمكن إجراؤها باستخدام واجهة برمجة التطبيقات:
- جلب/استخراج – جمع المعلومات (استخراج جميع رموز القسيمة)
- إضافة – تحديث أجزاء من البيانات (تحديث أسعار المنتج)
- إنشاء – يُنشئ (إنشاء فئة منتج جديدة)
- حذف – (حذف تدوينة)
إذن ما JSON ولما يُستخدم؟
يُستخدم JSON (JavaScript Object Notation) لتمثيل البيانات على الخادم. بحيث يسهل على البشر قراءتها، كما يسهل على الآلات/التطبيقات فهمها. دعونا نلقي نظرة على مثال JSON من منتج على موقع BigCommerce:
كما نلاحظ، يسهل فهم الكود السابق لأنه يظهر على شكل أزواج (مفتاح/قيمة)، مع وجود المفتاح على اليسار والقيمة على اليمين. المفاتيح هي كائن ثابت يحدده التطبيق وستظل كما في “الفئة-Category“. بينما ستكون القيم فريدة، مثل “قمصان-Shirts“.
ما هو طلب API؟
هناك العديد من مكونات طلب API حتى يعمل. دعنا نناقشها كلًا على حدا لنفهم كيف يمكن استخدامها لبناء طلب.
نقطة نهاية الاتصال – Endpoint
ثمّة جزءان رئيسيان لنقطة النهاية يُستخدمان عند تقديم طلب واجهة برمجة التطبيقات “API”.
- أحدهما هو رابط عنوان URL. يستخدم BigCommerce
https://api.bigcommerce.com/stores كعنوان URL لجميع طلبات واجهة برمجة التطبيقات. قد يبدو هذا كعنوان URL عادي ولكن إذا وضعته ضمن متصفح ويب، فستتلقى رسالة خطأ 404. - الجزء #2 هو المسار The path. سيختلف المسار اعتمادًا على ما تحاول إنجازه. [يمكنك العثور على قائمة بالمسارات المتاحة لـ BigCommerce من خلال زيارة وثائق المطور].
لكن في هذا المثال، سنستخدم مسار المنتج وهو: v3/catalog/products
عندما نجمع الجزأين معًا، نحصل على نقطة نهاية اتصال كاملة:
https://api.bigcommerce.com/stores/{store_hash}/v3/catalog/products.
ربما تتسائل “ما هو {store_hash}؟ ومن أين جاء؟”
هذا ما يعرف بالمتغير “Variable”. المتغيرات هي مكونات فريدة لنقطة نهاية وستختلف بناءً على معلومات متجرك. يمكنك تمييز المتغير من خلال القوسين “{}” الذين يُحيطان به.
الترويسة Header
توفر الترويسات معلومات للعميل والخادم. من الأمثلة الشائعة لتريسة بيانات اعتماد المصادقة مثل “رمز المصادقة Auth Token” أو “معرّف العميل Client ID”. تتوفر بيانات الاعتماد هذه تلقائيًا عند إنشاء حساب API.
“نوع المحتوى” هي ترويسة أخرى شائعة، ويُعلم الخادم من خلالها بنوع المحتوى الذي أُرسل. على سبيل المثال، أحد نوع المحتوى الشائع الاستخدام هو “application/json” والذي يتيح للخادم معرفة أننا نرسل بيانات JSON عبره.
الطريقة Method
الطرائق هي الإجراءات تُتخذ عند إرسال طلب. هل تذكر عندما ناقشنا في البداية (GET و PUT و POST و DELETE). جميعها طرائق لواجهة برمجة التطبيقات “API”.
البيانات Data
بيانات الطلب، والتي يشار إليها أيضًا باسم “البنية“، هي المعلومات التي تُرسل/تُسترتد بواسطة الخادم. يمكنك مشاهدة مثال لبيانات API في النقاش أعلاه حول JSON. تتطلب بنية الطلب أحيانًا معلومات محددة قبل تسليمه. مثال على ذلك، إذا كنت تقوم بتحرير منتج، فسيكون معرّف المنتج مطلوبًا قبل إجراء أي تغيير.
ماذا عن واجهات برمجة تطبيقات REST & SOAP؟
بينما تتبع واجهة برمجة التطبيقات مجموعة محددة من القواعد التي تحدد كيفية تواصل البرامج مع بعضها البعض. تحدد REST & SOAP كيفية ظهورها. ورغم تشابههما في الوظائف لكن يفصل بينهما العديد من الاختلافات الرئيسية وحالات الاستخدام.
تُعرف REST وهي اختصار لجملة “نقل الحالة التمثيلية – Representational State Transfer” بأنها مجموعة القواعد التي يتبعها المطورون عند إنشاء واجهة برمجة التطبيقات. تتمثل إحدى هذه القواعد في أنه يجب تصميم واجهة برمجة التطبيقات بطريقة سهلة الاستخدام ومنطقية لمطوري الويب. مثال على كسر هذه القاعدة هو الحصول على نقطة نهاية المنتج “prod_839” بدلاً من “المنتجات – Products” فحسب.
SOAP أو “البروتوكول المبسط لتطبيقات الكائنات – Simple Object Access Protocol” هو نموذج تصميم آخر لخدمات الويب. بدلاً من صيغة JSON النموذجية التي تستخدمه REST API. يستخدم SOAP لغة تعرف باسم لغة التمييز القابلة للامتداد (XML). والتي صُممت لتكون سهلة القراءة للآلة والبشر على حدٍ سواء. يتبع SOAP معيارًا قويًا من القواعد، مثل بنية توجيه الرسائل “Messaging structure” واتفاقية لتقديم الطلبات أو الردود.
بشكل عام، تشير هذه المقالة إلى معايير واجهة برمجة تطبيقات REST لأنها تُستخدم غالبًا في عالم اليوم. تستخدم الشركات الكبرى مثل غوغل وآمازون وإيباي واجهات برمجة تطبيقات REST. يعد REST هو الخيار المفضل عمومًا بين مطوري البرامج.
أمثلة يومية لواجهات برمجة التطبيقات
تساعد واجهة برمجة التطبيقات المطورين على تقديم المعلومات بسرعة للمستخدمين والتي تُستخدم باستمرار في أنشطتنا اليومية. من التسوق عبر الإنترنت، أو تصفح أحد تطبيقات شبكات التواصل الاجتماعي، أو ممارسة لعبة على الهاتف الذكي. في كل مرة تزور فيها صفحة عبر الإنترنت، فإنك تتفاعل مع واجهة برمجة التطبيقات (API). فيما يلي بعض الأمثلة الواقعية عن كيفية تفاعلك معها دون أن تُدرك ذلك.
الذهاب الى البنك
اعتبر نفسك (المستخدم – User) وصرّاف بنك (واجهة برمجة تطبيقات – API)، ومدير البنك (النظام الذي تتفاعل معه – System).
- عندما تريد سحب بعض الأموال من حسابك، فإنك تذهب إلى الصرّاف (API) وتقول “أريد 1,000$ من هذا الحساب”.
- هكذا يعود الصرّاف (API) إلى الخلف، ويخبر مدير البنك (System) “السيد/الآنسة User يريد/تريد 1,000$”.
- مدير البنك (System) يعطي الصراف (API) المبلغ الذي يمنحك إياه في النهاية .
كما ترى، فـ API مجرد رسول بين احتياجاتك والنظام.
البحث عن الفنادق
عندما تزور موقع سفر، قد يكون مرتبطًا بعشرة مواقع سفر أخرى للعثور على أفضل صفقة لك. عندما تقوم بإدخال تفاصيل مثل: (أطلنطا، غرفة بسرير واحد، ليلتين)، فإنك ترسل طلبك إلى مواقع السفر العشرة المختلفة تلك. تأخذ واجهة برمجة التطبيقات (API) طلبك لهذا الموقع المحدد، وتاريخ الحجز، وعدد الغرف وتبحث عنه ضمن المواقع العشرة، التي تردّ بالصفقات التي عثروا عليها. ستتأمل الصفقات العشر وتختار الأفضل من بينها. مرة أخرى، API هو رسول لطلباتك.
البحث عن ملف شخصي على الفيس بوك
مطاردة حبيبتك السابقة؟ نأمل ألا يكون ذلك! ولكن بفضل واجهات برمجة التطبيقات، يمكنك القيام بذلك بسهولة! إذا كتبت “جون سميث” على الفيسبوك، فإن واجهة برمجة التطبيقات تخبر خوادم الفيسبوك أنك تبحث عن جون سميث. يرسل لك الفيسبوك بعد ذلك قائمة بجميع الملفات الشخصية التي تطابق هذا الاسم (مع عوامل مثل القرب منك، أو الأصدقاء المشتركين). يمكنك الآن العثور على جون سميث!
إيجاد مطعم جديد
لنفترض أنك تسافر إلى مدينة/ولاية جديدة. لقد وضعت أمتعتك للتو في الفندق وقررت تناول بعض الغداء. تمسك بهاتفك الذكي وتبحث عن المطاعم القريبة. تظهر لك بسرعة عشرات المطاعم المحلية خارج فندقك مباشرةً. بفضل واجهة برمجة التطبيقات لخرائط غوغل “Google Maps API”؛ يمكنك بسهولة رؤية ساعات العمل والمراجعات وأرقام الهواتف وحتى الأوقات التي يحتمل أن تكون مزدحمة فيها.
معرفة آخر الأخبار على شبكات التواصل الاجتماعي
أنت عالق في سيارة أجرة داخل ازدحام مروري في ساعة الذروة. لا شيء أسوأ من ذلك، أعلم!
قررت تزجية بعض الوقت ومتابعة ما يحدث في عالم الرياضة. تفتح تويتر وتنتقل إلى قسم “الرياضة”. تتيح لك واجهة برمجة تطبيقات تويتر (Twitter’s API) مشاهدة التغريدات المختلفة المتعلقة بفريقك المفضل الذي فاز في التصفيات. يمكنك حتى إغاظة صديقك الذي خسر فريقه من خلال إعادة تغريد النتيجة النهائية. من هنا، يعرف تويتر أن عليه أخذ هذه التغريدة وعرضها على كل من يتابعك.
لماذا تستخدم المتاجر الإلكترونية الحديثة واجهات برمجة التطبيقات؟
تقدم API مجموعة واسعة من الفوائد للمتاجر الإلكترونية. يمكنها مساعدة المستهلكين في العثور على المنتجات بسهولة، أو تنمية العلامة التجارية للشركة، أو حتى توسيع إمكانات الكسب من خلال بيع المنتجات في أسواق مختلفة مثل إيباي/eBay وآمازون/Amazon وفيسبوك/Facebook. وإليك بعض الفوائد التي تؤكد أهمية واجهة برمجة التطبيقات للمتاجر الإلكترونية اليوم.
الأمان
يدعم استخدام المواقع واجهات برمجة التطبيقات مستويات الأمان. فعندما ترسل طلبًا، لا يتم ربطك مباشرة بالخادم. وإنما تُرسل مقدار صغير من المعلومات، وتقوم واجهة برمجة التطبيقات بتسليمها، ثم يرسلها الخادم مرة أخرى. هذا يقلل من خطر حدوث خرق أو وصول شخص ما إلى الواجهة الخلفية للخادم.
السرعة
بدون واجهات برمجة التطبيقات، سيتعين عليك الاتصال هاتفيًا بالمتجر ومطالبتهم إلقاء نظرة على مخزونهم من جميع مورديهم، ومعاودة الاتصال بك في النهاية. في المقابل، ومع وجود واجهة برمجة تطبيقات API، يمكنك بسهولة معرفة ماهية المنتج أو السعر أو مستوى المخزون.
قابلية التوسع
تسمح واجهات برمجة التطبيقات بقابلية التوسع والمرونة عند توسيع كتالوج متجرك أو درجة الأمان أو احتياجات البيانات. يمكن أن ينمو متجرك بمعدل أسرع عندما لا تضطر إلى تضمين رمز جديد لكل منتج أو مستخدم.
بعض أنواع واجهات برمجة التطبيقات المستخدمة
هناك (3) أنواع لواجهات برمجة التطبيقات المستخدمة بشكل شائع اليوم:
- واجهة برمجة التطبيقات المفتوحة (Open API)
- واجهة برمجة تطبيقات للشركاء (Partner API)
- واجهة برمجة تطبيقات الشخصية (Private API)
تتوفر واجهات برمجة التطبيقات المفتوحة بشكل عام ليستخدمها أي شخص. BigCommerce، على سبيل المثال، يستخدم ما يقرب من 25 واجهة برمجة تطبيقات مختلفة، وهي متاحة للجمهور للاستخدام.
صُممت واجهات برمجة التطبيقات للشركاء من قبل الشركات لتقديم وصول لشركاء الأعمال الاستراتيجيين كقناة إيرادات إضافية لكلا الطرفين. على سبيل المثال، تقدم Ticketmaster واجهة برمجة تطبيقات للشريك للسماح لعملائها بالقدرة على حجز وشراء واسترداد معلومات التذاكر/الحدث.
صُممت واجهات برمجة التطبيقات الشخصية للاستخدام الداخلي. لنفترض أنك تسافر إلى مدينة مختلفة لحضور اجتماع عمل. تحتاج إلى القيام بزيارة سريعة إلى البنك. تدخل إلى “بنك أبجد هوز” وتعطي الصرّاف رقم حسابك. يُدخل الصرّاف رقم الحساب بسرعة ويُجري عملية السحب.
تمكن الصراف من استخراج معلوماتك باستخدام نظام بنك أبجد هوزالداخلي، والذي يستخدم واجهة برمجة تطبيقات لسحب معلومات حسابك وتحديث رصيد حسابك الجديد.
واجهات برمجة تطبيقات المتاجر الإلكترونية المشتركة
تُستخدم واجهات برمجة تطبيقات المتاجر الإلكترونية بعدة طرق. من عرض المنتجات في متجر إلكتروني إلى شحنها إلى جميع أنحاء العالم. تساعد واجهات برمجة التطبيقات أصحاب المتجر على إدارة شركتهم عبر الإنترنت والتواصل مع العملاء بسرعة وموثوقية.
- واجهات برمجة التطبيقات الخاصة بمعلومات المنتج
توجد واجهات برمجة التطبيقات الخاصة بمعلومات المنتج على كل موقع للتجارة الإلكترونية، وتجمع معلومات حول منتجاتك لتقدمها للعملاء. - واجهات برمجة تطبيقات للبحث ضمن الموقع
القدرة على البحث في الموقع ليست تلقائية. تحتاج عمليات البحث في الموقع إلى واجهات برمجة تطبيقات للبحث في جميع منتجاتك التي تحتوي على استعلام معين واستعادتها لمستخدمك. - واجهات برمجة تطبيقات الدفع
إذا كان متجرك عبر الإنترنت يضمّ أي شكل من أشكال المدفوعات الإلكترونية، فأنت تستخدم واجهة برمجة تطبيقات للدفع كوسيط بين متجرك وجهة الدفع. - واجهات برمجة تطبيقات الشحن
هل زرت موقعًا يطلب منك إدخال الرمز البريدي خاصتك لحساب مصاريف الشحن؟ يستخدم هذا الموقع واجهة برمجة تطبيقات مع نظام الشحن لتحصل على أفضل سعر. - واجهات برمجة تطبيقات تحويل العملات
كان شراء القمصان على موقع بريطاني من شخص يعيش في الولايات المتحدة أمرًا صعبًا، والآن مع واجهات برمجة تطبيقات تحويل العملات، يمكن للمتاجر الدولية المفضلة لديك تحويل العملة في لحظة. تفتح واجهة برمجة التطبيقات هذه مئات الآلاف من المتاجر عبر الإنترنت للعملاء الدوليين.
الخلاصة
واجهة برمجة التطبيقات (API) هي أداة قوية يمكن أن تساعد في تسريع نمو عملك، وزيادة وصول علامتك التجارية للجمهور المستهدف، وربط المتسوقين لديك بالمنتجات التي يريدونها، وأكثر من ذلك بكثير. إذا كنت مهتمًا بمعرفة كيف يمكن أن تساعد واجهة برمجة التطبيقات في دعم نشاطك التجاري. فإليك بعض الموارد الإضافية:
- تعرض وثائق مطور واجهة برمجة التطبيقات أدلة حول الوظائف المختلفة التي يمكنك استخدامها.
- يمكن لمتجر التطبيقات في Big commerce مساعدتك في الاتصال بخدمات مثل Google Shopping، أو إجراء نسخ احتياطي سريع لبياناتك المهمة باستخدام Rewind، أو حتى مساعدتك في إنشاء صفحات ويب مخصصة جميلة باستخدام أدوات مثل Shogun.
- أخيرًا، يمكن أن يوصلك دليل الشركاء الخاص بـ BigCommerce بالعديد من الشركاء المعتمدين الذين هم على دراية بـواجهة برمجة التطبيقات الخاصة بالمتجر وقد يكونون قادرين على المساعدة في إيجاد حلول مخصصة تتناسب مع شركتك على أكمل وجه.
~~~~~
مصادر:
*موقع صفحات
What is an API? A Digestible Definition with API Examples for Ecommerce Owners