
عندما تفتح تطبيق الطقس على هاتفك وتظهر لك درجة الحرارة في مدينتك خلال ثانية، أو تدفع ثمن طلب من متجر إلكتروني عبر بوابة دفع خارجية، أو تسجّل الدخول إلى موقع ما بحساب جوجل بدل إنشاء حساب جديد، فهناك «وسيط خفي» يعمل خلف الكواليس ويجعل كل ذلك ممكنًا. هذا الوسيط اسمه API، وهو من أكثر المصطلحات التي يسمعها كل من يقترب من عالم البرمجة، لكنه يبقى غامضًا لدى كثير من المبتدئين.
في هذا الدليل نشرح ما هو API بلغة بسيطة وبعيدًا عن التعقيد، ونوضح كيف يعمل، وما أنواعه، وما معنى REST وJSON والطلبات والاستجابات، ثم نجرّب معًا أول طلب حقيقي خطوة بخطوة، مع نصائح مهمة للأمان وأخطاء شائعة يقع فيها المبتدئون.
ما هو API؟ التعريف ببساطة
API هي اختصار لعبارة Application Programming Interface، وترجمتها «واجهة برمجة التطبيقات». الفكرة الأساسية أنها مجموعة من القواعد المتفق عليها تسمح لبرنامجين مختلفين بالتواصل وتبادل البيانات دون أن يحتاج أحدهما إلى معرفة كيف بُني الآخر من الداخل.
أشهر تشبيه لفهم الفكرة هو النادل في المطعم: أنت (التطبيق) تجلس على الطاولة ولا تدخل المطبخ (الخادم وقاعدة البيانات). تطلب من النادل طبقًا معينًا من القائمة، فينقل طلبك إلى المطبخ ثم يعود إليك بالطبق. لا يهمك كيف طُبخ الطعام، المهم أنك طلبت بطريقة صحيحة من القائمة المتاحة وحصلت على النتيجة. الـ API هنا هو النادل، و«القائمة» هي التوثيق (Documentation) الذي يخبرك بما يمكنك طلبه وكيف.
لماذا تعتمد التطبيقات الحديثة على الـ API؟
لا يوجد تطبيق اليوم يعمل بمعزل عن غيره تقريبًا، والسبب أن الـ API يوفر مزايا كبيرة للمطورين والشركات:
- توفير الوقت والجهد: بدل أن تبني نظام خرائط كاملًا من الصفر، يمكنك استخدام API خرائط جاهز وعرضه في تطبيقك.
- فصل الواجهة عن الخادم: نفس الخادم يمكنه خدمة موقع الويب وتطبيق أندرويد وتطبيق آيفون في وقت واحد عبر API موحد.
- الأمان والتحكم: الشركة لا تكشف قاعدة بياناتها مباشرة، بل تسمح بعمليات محددة فقط عبر الواجهة، مع صلاحيات ومفاتيح وصول.
- التكامل بين الخدمات: ربط متجرك ببوابة دفع، أو ربط نموذج التسجيل بقائمة بريدية، أو إرسال إشعارات إلى تيليجرام تلقائيًا.
- بناء منتجات جديدة: كثير من الخدمات الناجحة قامت أساسًا على دمج واجهات برمجية لخدمات أخرى بطريقة مبتكرة.
أمثلة يومية على استخدام API قد لا تلاحظها
- تسجيل الدخول بحساب جوجل أو آبل: الموقع يطلب من خدمة الحسابات التحقق من هويتك عبر واجهة برمجية دون أن يرى كلمة مرورك.
- تطبيقات الطقس: التطبيق يرسل اسم مدينتك إلى خدمة أرصاد، فتعيد له درجة الحرارة والتوقعات.
- الدفع الإلكتروني: المتجر يرسل قيمة الطلب إلى بوابة الدفع، وتعود له نتيجة العملية: ناجحة أو مرفوضة.
- مقارنة أسعار الطيران والفنادق: مواقع المقارنة تجمع العروض من شركات كثيرة عبر واجهاتها البرمجية وتعرضها في صفحة واحدة.
- روبوتات الدردشة بالذكاء الاصطناعي: كثير من التطبيقات تضيف ميزات ذكاء اصطناعي عبر الاتصال بواجهة برمجية لنموذج لغوي بدل تدريب نموذج خاص بها.
كيف يعمل الـ API؟ الطلب والاستجابة
معظم الواجهات البرمجية على الإنترنت تعمل بنموذج بسيط اسمه الطلب والاستجابة (Request / Response). التطبيق (العميل) يرسل طلبًا إلى عنوان محدد على الخادم، والخادم يعالج الطلب ثم يرسل ردًا. ويتكون الطلب عادة من عدة أجزاء:
- نقطة النهاية (Endpoint): وهي العنوان الذي ترسل إليه الطلب، مثل
https://api.example.com/users/15. - الطريقة (Method): تحدد نوع العملية المطلوبة، وسنشرحها بعد قليل.
- الترويسات (Headers): معلومات إضافية مثل نوع البيانات المرسلة أو مفتاح الوصول.
- جسم الطلب (Body): البيانات التي ترسلها عند إنشاء أو تعديل شيء ما، مثل بيانات مستخدم جديد.
أما الاستجابة فتحتوي على رمز حالة يخبرك بنتيجة الطلب، إضافة إلى البيانات المطلوبة غالبًا بصيغة JSON.
طرق HTTP الأساسية
- GET: لجلب بيانات، مثل عرض قائمة المنتجات.
- POST: لإنشاء عنصر جديد، مثل تسجيل مستخدم أو إضافة طلب.
- PUT / PATCH: لتعديل عنصر موجود كليًا أو جزئيًا.
- DELETE: لحذف عنصر.
أشهر رموز الحالة (Status Codes)
- 200 OK: الطلب نجح.
- 201 Created: تم إنشاء العنصر الجديد بنجاح.
- 400 Bad Request: الطلب نفسه فيه خطأ في الصيغة أو البيانات.
- 401 / 403: غير مصرح لك، غالبًا بسبب مفتاح وصول خاطئ أو صلاحيات ناقصة.
- 404 Not Found: العنوان أو العنصر غير موجود.
- 429 Too Many Requests: تجاوزت عدد الطلبات المسموح به خلال فترة زمنية.
- 500: خطأ داخلي في الخادم وليس في طلبك.
ما هو JSON ولماذا تراه في كل مكان؟
JSON هي صيغة نصية خفيفة لتبادل البيانات، سهلة القراءة للإنسان وسهلة المعالجة للبرامج، ولذلك أصبحت اللغة المشتركة لمعظم الواجهات البرمجية الحديثة. تتكون من أزواج «مفتاح: قيمة»، وهذا مثال لاستجابة تعيد بيانات مستخدم:
{
"id": 15,
"name": "أحمد",
"city": "صنعاء",
"is_active": true,
"skills": ["Python", "HTML"]
}كما ترى، يمكن قراءة البيانات بسهولة: رقم المستخدم واسمه ومدينته وحالته وقائمة مهاراته. وأي لغة برمجة تقريبًا تستطيع تحويل هذا النص إلى كائنات تتعامل معها مباشرة.
أنواع الـ API الشائعة
حسب طريقة الإتاحة
- عامة (Public / Open): متاحة لأي مطور، غالبًا بعد التسجيل والحصول على مفتاح مجاني أو مدفوع.
- خاصة (Private): تستخدمها الشركة داخليًا بين أنظمتها فقط، مثل الربط بين تطبيقها وخادمها.
- للشركاء (Partner): متاحة لشركاء معتمدين بموجب اتفاق، مثل ربط شركات الشحن بالمتاجر.
حسب الأسلوب المعماري
- REST: الأكثر انتشارًا، يعتمد على عناوين واضحة لكل مورد وطرق HTTP المعروفة، ويستخدم JSON غالبًا. إذا كنت مبتدئًا فابدأ به.
- GraphQL: يسمح للعميل بتحديد الحقول التي يريدها بالضبط في طلب واحد، فيقلل نقل البيانات الزائدة.
- SOAP: أسلوب أقدم يعتمد على XML وقواعد صارمة، وما زال موجودًا في بعض الأنظمة البنكية والمؤسسية.
- Webhooks: عكس الفكرة المعتادة؛ بدل أن تسأل الخادم باستمرار «هل حدث شيء جديد؟»، يرسل هو إليك إشعارًا تلقائيًا عند وقوع حدث معين، مثل نجاح عملية دفع.
جرّب أول طلب API بنفسك خطوة بخطوة
أفضل طريقة للفهم هي التجربة. توجد خدمات تجريبية مجانية مخصصة للتعلم مثل JSONPlaceholder التي تعيد بيانات وهمية دون تسجيل.
الطريقة الأولى: من المتصفح مباشرة
افتح المتصفح واكتب العنوان التالي: https://jsonplaceholder.typicode.com/users/1. ستظهر لك بيانات مستخدم وهمي بصيغة JSON. لقد أرسلت للتو طلب GET واستلمت استجابة!
الطريقة الثانية: بأداة curl من سطر الأوامر
أداة curl متوفرة في ويندوز 10 و11 وماك ولينكس. افتح الطرفية واكتب:
curl https://jsonplaceholder.typicode.com/posts/1الطريقة الثالثة: بلغة بايثون
بعد تثبيت مكتبة requests بالأمر pip install requests، جرّب الكود التالي:
import requests
response = requests.get("https://jsonplaceholder.typicode.com/users/1")
print(response.status_code) # 200 يعني نجاح الطلب
data = response.json()
print(data["name"], "-", data["email"])يمكنك كتابة هذا الكود وتشغيله في محرر مثل VS Code؛ وإذا لم تجهّز بيئتك بعد فراجع شرح VS Code للمبتدئين خطوة بخطوة.
الطريقة الرابعة: بأدوات رسومية
إذا كنت لا تحب سطر الأوامر، فهناك أدوات بواجهة رسومية مثل Postman وInsomnia، أو إضافة Thunder Client داخل VS Code، تتيح لك كتابة الطلبات واختيار الطريقة وإضافة الترويسات ورؤية الاستجابة بشكل منظم.
مفاتيح API والأمان: نقاط لا تتهاون فيها
معظم الواجهات الحقيقية تطلب مفتاح API أو رمز وصول (Token) لتعرف من يرسل الطلب وتحدد صلاحياته وعدد الطلبات المسموح بها. هذا المفتاح يشبه كلمة المرور، والتعامل معه بإهمال قد يكلفك فواتير مرتفعة أو تسريب بيانات. التزم بالنصائح التالية:
- لا تضع المفتاح داخل الكود مباشرة: احفظه في متغيرات البيئة أو ملف
.env. - لا ترفع المفاتيح إلى GitHub: أضف ملف
.envإلى.gitignore. وإذا كنت جديدًا على Git فراجع دليل Git وGitHub للمبتدئين. - لا تضع المفاتيح السرية في كود الواجهة الأمامية: أي مفتاح داخل JavaScript في المتصفح يمكن لأي زائر رؤيته.
- اعمل بأقل الصلاحيات: إذا كان التطبيق يحتاج القراءة فقط، فلا تمنح المفتاح صلاحية الكتابة أو الحذف.
- غيّر المفتاح فورًا عند الشك في تسريبه، وفعّل حدود الإنفاق والتنبيهات إن كانت الخدمة مدفوعة.
- استخدم HTTPS دائمًا حتى لا تُنقل البيانات والمفاتيح دون تشفير.
أخطاء شائعة يقع فيها المبتدئون مع الـ API
- تجاهل التوثيق: كل API له قواعده الخاصة؛ قراءة التوثيق أولًا توفر ساعات من التجربة العشوائية.
- عدم فحص رمز الحالة: لا تفترض أن الطلب نجح دائمًا، وتعامل مع أخطاء 4xx و5xx برسائل واضحة للمستخدم.
- إرسال طلبات كثيرة جدًا: كثير من الخدمات تفرض حدًا للطلبات (Rate Limit)، فاستخدم التخزين المؤقت وأعد المحاولة بعد مهلة عند ظهور الخطأ 429.
- الخلط بين GET وPOST: لا ترسل بيانات حساسة في عنوان الرابط، ولا تستخدم GET لعمليات تغيّر البيانات.
- إهمال إصدار الواجهة: الخدمات تحدّث واجهاتها، فانتبه لرقم الإصدار مثل
/v1/وتابع إعلانات إيقاف الإصدارات القديمة.
كيف تبدأ تعلم الـ API عمليًا؟
إذا كنت في بداية طريقك البرمجي، فهذا مسار مقترح وبسيط:
- تعلّم أساسيات لغة واحدة مثل بايثون أو جافاسكريبت، ويمكنك البدء من مقال تعلم البرمجة للمبتدئين من الصفر.
- افهم أساسيات بروتوكول HTTP: الطرق ورموز الحالة والترويسات.
- جرّب واجهات تجريبية مجانية مثل JSONPlaceholder ثم واجهات عامة حقيقية مثل خدمات الطقس أو أسعار العملات.
- ابنِ مشروعًا صغيرًا: صفحة تعرض حالة الطقس لمدينتك، أو بوت تيليجرام بسيط يرد على الأوامر عبر Bot API الرسمي.
- انتقل بعدها إلى بناء API خاص بك باستخدام إطار مثل Flask أو FastAPI في بايثون أو Express في Node.js أو Laravel في PHP.
أسئلة شائعة
هل الـ API لغة برمجة؟
لا، الـ API ليس لغة برمجة، بل واجهة أو «عقد» يحدد كيف تتواصل البرامج مع بعضها. ويمكنك استخدام أي لغة برمجة تقريبًا لإرسال الطلبات واستقبال الردود.
ما الفرق بين API وموقع الويب؟
موقع الويب يعرض صفحات مصممة للإنسان بالصور والتنسيق، أما الـ API فيعيد بيانات خامًا منظمة مثل JSON مخصصة لتقرأها البرامج ثم تعرضها بالشكل الذي تريده.
هل كل الواجهات البرمجية مجانية؟
لا؛ بعضها مجاني بالكامل، وبعضها يقدم حصة مجانية محدودة ثم يحاسبك حسب الاستخدام، وبعضها مدفوع فقط. اقرأ صفحة الأسعار والشروط قبل الاعتماد على أي خدمة في مشروعك.
هل أحتاج إلى خادم خاص لاستخدام API؟
لاستهلاك واجهات جاهزة لا تحتاج خادمًا؛ يكفي جهازك. لكن إذا أردت إخفاء المفاتيح السرية عن المستخدمين أو بناء API خاص بك، فستحتاج إلى خادم أو خدمة استضافة.
الخلاصة
الـ API هو الجسر الذي يربط التطبيقات والخدمات ببعضها، ويقف خلف معظم ما تستخدمه يوميًا من تسجيل الدخول إلى الدفع الإلكتروني وتطبيقات الطقس والذكاء الاصطناعي. فهم فكرة الطلب والاستجابة، وطرق HTTP، ورموز الحالة، وصيغة JSON، يكفيك للبدء والتجربة اليوم. ابدأ بطلب بسيط من المتصفح، ثم جرّب بايثون، واحرص من اليوم الأول على حماية مفاتيحك، وستجد أن عالمًا كاملًا من الأفكار والمشاريع أصبح في متناول يدك.



