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

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

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

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

واجهة برمجة التطبيقات (application programming interface) أو اختصارًا API؛ هي نافذة برمجية أو مجموعة من القواعد يمكن من خلالها التواصل مع خدمة أو موقع أو برنامج عن بعد برمجيًا. تسمح واجهات برمجة التطبيقات لبرنامجين أو تطبيقين بالتواصل والتفاعل وتبادل البيانات، لذلك تستخدمها معظم التطبيقات مثل: تطبيق Gmail وفيسبوك وتويتر وغيرها.

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

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

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

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

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

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

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

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

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

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

ماذا عن واجهات REST API البرمجية؟

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

أحد أهم وأشهر أنواع واجهة برمجة التطبيقات هي واجهات برمجية تسمى REST API أو (RESTful API)، وهي واجهات برمجة تطبيقات مبنية وفق مواصفات REST (نقل الحالة التمثيلية – Representational State Transfer)، وهي مجموعة من القواعد تحدد كيفية عمل واجهة برمجة التطبيقات، والقواعد التي ينبغي أن يلتزم بها المطورون الذين يريدون استخدامها.

إحدى أهم ميزات واجهات REST API أنها تتيح إرسال بيانات إلى التطبيق المراد التفاعل معه عبر الدخول إلى رابط خاص (مثلًا https://example.com/wp-json/wc/v3/products)، يسمى الرابط طلبًا (request)، وتُسمى البيانات المُعادة إجابة (response).

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

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

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

1. استثمار البيانات

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

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

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

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

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

2. أداة قوية للمبرمجين والمطورين

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

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

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

3. أتمتة المهام

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

4. تحميل البيانات

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

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

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

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

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

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

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

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

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

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

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

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

https://example.com/wp-json/wc/v3/products (عليك تعويض example.com باسم موقعك)

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

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

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

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

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

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

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

يمكنك توظيف مبرمج محترف عبر موقع مستقل، أكبر منصة عمل حر عربية، ليبني لك واجهة api احترافية ووفق المعايير المتعارف عليها. قوِّ وضع مشروعك التنافسي واجعله أكثر جاذبية، سيكون هذا أفضل استثمار يمكن أن تُقدِم عليه لتوسيع مشروعك والتسهيل على شركائك وعملائك.

أمثلة على تطبيقات api

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

  • واجهة برمجة تطبيقات جوجل (Google APIs):  تقدم جوجل العديد من واجهات برمجة التطبيقات التي تتيح التفاعل مع معظم خدمات ومواقع جوجل، مثل يوتيوب، وأدوات أصحاب المواقع الخاصة بجوجل، وخدمات الخرائط والترجمة والبريد الإلكتروني وجوجل درايف وغيرها.
  • واجهة برمجة التطبيقات الخاصة بتويتر (Twitter API): تتيح Twitter API للمبرمجين الوصول إلى تويتر للتفاعل مع التغريدات، وتحليلها، والقيام ببعض المهام آليًا، مثل المراسلة والتغريد والتفاعل مع المستخدمين.
  • واجهة Shippo API: هذه الواجهة Shippo API تساعد أصحاب المتاجر الإلكترونية على إيجاد أفضل شركات الشحن على مستوى العالم، مع مقارنة الأسعار والخدمات.
  • واجهة الطقس openweather: تسمح لك هذه الواجهة بالوصول إلى بيانات الطقس لأكثر من 200 ألف مدينة حول العالم، وهي واجهة مجانية. يمكنك استخدامها في تطبيقك أو موقعك للحصول على بيانات الطقس وعرضها لمستخدميك.
  • واجهة برمجة تطبيقات لأوقات الصلاة: تقدم هذه الواجهة أوقات الصلوات الخمس بدقة حسب المنطقة الجغرافية أو خطوط الطول والعرض وغيرها. هذه الواجهة مجانية، ويمكن استخدامها مثلًا لإنشاء تطبيق للتذكير بالصلاة.

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

تم النشر في: مارس 2021
تحت تصنيف: البرمجة والتطوير | تعلم البرمجة