ما هي API

إذا كنت تستخدم تطبيقا على الهاتف، أو تتصفح موقعا إلكترونيا، أو تسجل الدخول باستخدام حساب Google، فأنت غالبا تستخدم API حتى لو لم تكن تعرف ذلك.
تعد API من أهم المفاهيم في عالم البرمجة وتطوير التطبيقات، لأنها تسمح للأنظمة والتطبيقات المختلفة بالتواصل وتبادل البيانات بطريقة منظمة.
في هذا المقال سنتعرف على معنى API، وكيف تعمل، وما أهم أنواعها، مع أمثلة عملية مبسطة.
ما معنى API؟
كلمة API هي اختصار لـ
Application Programming Interface
وتعني بالعربية:
واجهة برمجة التطبيقات
ببساطة، API هي وسيلة تسمح لبرنامج أو تطبيق بالتواصل مع برنامج أو خدمة أخرى دون الحاجة إلى معرفة كيفية بناء النظام الداخلي للطرف الآخر.
مثال بسيط
لنفترض أن لديك تطبيقا يعرض حالة الطقس.
تطبيقك لا يحتاج إلى إنشاء نظام خاص لجمع بيانات الطقس من الأقمار الصناعية ومحطات الأرصاد الجوية.
بدلا من ذلك، يمكنه الاتصال بخدمة متخصصة في الطقس من خلال API، وإرسال طلب للحصول على حالة الطقس، ثم تستجيب الخدمة بالبيانات المطلوبة.
مثلا:
التطبيق → API → خادم الطقس → API → التطبيق
وبهذه الطريقة يستطيع التطبيق عرض درجة الحرارة وحالة الطقس للمستخدم.
تشبيه بسيط لفهم API
يمكن تشبيه API بالنادل في المطعم.
أنت تجلس على الطاولة ولا تدخل إلى المطبخ بنفسك.
تطلب من النادل وجبة معينة، فيأخذ طلبك إلى المطبخ، ثم يعود إليك بالنتيجة.
في هذا المثال:
- أنت: التطبيق أو المستخدم
- موظف المطعم: API
- المطبخ: الخادم أو النظام
- الطلب: Request
- النتيجة: Response
أنت لا تحتاج إلى معرفة ما يحدث داخل المطبخ، وإنما تحتاج فقط إلى معرفة كيفية إرسال الطلب وما الذي ستحصل عليه في المقابل.
كيف تعمل API؟
عندما يحتاج التطبيق إلى بيانات من خادم معين، يقوم بإرسال Request إلى API.
يقوم الخادم باستقبال الطلب ومعالجته، ثم يعيد Response يحتوي على البيانات المطلوبة أو رسالة توضح وجود مشكلة.
يمكن تبسيط العملية بالشكل التالي:
Client → Request → API → Server → Response → Client
حيث:
- Client: التطبيق أو الموقع الذي يرسل الطلب.
- Request: الطلب الذي يرسله التطبيق.
- API: الواجهة التي تستقبل الطلب وتنظمه.
- Server: الخادم الذي يعالج الطلب.
- Response: النتيجة التي تعود إلى التطبيق.
ما هو Request؟
الـ Request هو الطلب الذي يرسله التطبيق إلى API.
يمكن أن يحتوي الطلب على عدة معلومات، مثل:
- عنوان API
- نوع العملية المطلوبة
- بيانات المستخدم
- Parameters
- Headers
- Authentication Token
مثلًا، قد يرسل تطبيق طلبا للحصول على معلومات مستخدم معين:
GET /users/25
وهذا يعني أن التطبيق يريد الحصول على بيانات المستخدم الذي يحمل الرقم 25.
ما هو Response؟
بعد معالجة الطلب، يقوم الخادم بإرسال Response.
غالبًا تكون البيانات بصيغة JSON.
مثال:
{
"id": 25,
"name": "Ahmed",
"city": "Sinjar"
}
يستطيع التطبيق قراءة هذه البيانات وعرضها للمستخدم.
أهم أنواع طلبات HTTP
عند التعامل مع REST API ستتعامل غالبًا مع مجموعة من HTTP Methods، وأشهرها:
GET
تستخدم للحصول على البيانات.
مثال:
GET /products
يعني: أحضر قائمة المنتجات.
POST
تستخدم لإرسال بيانات جديدة إلى الخادم.
مثل إنشاء حساب جديد:
POST /users
مع إرسال بيانات المستخدم.
PUT
تستخدم عادةً لتحديث بيانات موجودة.
PUT /users/25
PATCH
تستخدم لتعديل جزء من البيانات بدلًا من تحديث الكائن بالكامل.
DELETE
تستخدم لحذف بيانات.
DELETE /users/25
ما هي REST API؟
من أشهر أنواع APIs المستخدمة في تطوير الويب والتطبيقات:
REST API
وهي طريقة لتنظيم التواصل بين التطبيقات والخوادم باستخدام بروتوكول HTTP.
على سبيل المثال، يمكن أن يكون لدينا API لمتجر إلكتروني:
GET /products
GET /products/10
POST /products
PUT /products/10
DELETE /products/10
بهذه الطريقة يستطيع تطبيق الهاتف أو موقع الويب التعامل مع المنتجات الموجودة في الخادم.
ما علاقة API بقاعدة البيانات؟
من الأخطاء الشائعة أن يعتقد المبتدئ أن التطبيق يتصل مباشرة بقاعدة البيانات.
في الأنظمة الحديثة غالبًا يكون هناك طبقة وسيطة.
مثلًا:
تطبيق الهاتف → API → Backend → Database
عندما يطلب المستخدم قائمة المنتجات:
- التطبيق يرسل Request.
- API تستقبل الطلب.
- الـ Backend يعالج الطلب.
- الخادم يتواصل مع قاعدة البيانات.
- يتم الحصول على البيانات.
- يتم إرسال Response إلى التطبيق.
- التطبيق يعرض البيانات للمستخدم.
وهذا يجعل النظام أكثر تنظيمًا وأمانًا.
مثال عملي من تطبيق متجر إلكتروني
لنفترض أنك بنيت تطبيقًا يحتوي على متاجر ومنتجات.
عندما يفتح المستخدم متجرًا، يحتاج التطبيق إلى جلب المنتجات من الخادم.
يمكن أن يكون لديك Endpoint مثل:
GET /api/stores/15/products
يرسل التطبيق الطلب.
ثم يمكن أن تعود البيانات:
{
"store": "متجر شنكال",
"products": [
{
"id": 1,
"name": "كابل شبكة",
"price": 5000
},
{
"id": 2,
"name": "UPS",
"price": 85000
}
]
}
بعد ذلك يقوم التطبيق بتحويل هذه البيانات إلى واجهة يستطيع المستخدم رؤيتها.
ما هو Endpoint؟
الـ Endpoint هو عنوان محدد داخل API لتنفيذ وظيفة معينة.
مثلًا:
/api/users
/api/products
/api/orders
/api/stores
كل Endpoint يمكن أن يكون مسؤولًا عن وظيفة مختلفة.
مثلًا:
GET /api/products
للحصول على المنتجات.
بينما:
POST /api/orders
لإنشاء طلب جديد.
هل API مفتوحة للجميع؟
ليس بالضرورة.
هناك APIs عامة يمكن للمطورين استخدامها، وهناك APIs خاصة تستخدم داخل نظام معين.
كما يمكن أن تكون API محمية وتتطلب تسجيل دخول أو API Key أو Access Token.
مثلًا:
Authorization: Bearer YOUR_TOKEN
يستخدم الخادم هذا الرمز للتأكد من أن المستخدم أو التطبيق لديه صلاحية الوصول إلى الخدمة.
لماذا نستخدم API؟
هناك أسباب كثيرة لاستخدام API، أهمها:
1. ربط تطبيق الهاتف بالخادم
يمكن لتطبيق Android أو iOS الحصول على البيانات من Backend باستخدام API.
2. ربط الأنظمة المختلفة
يمكن لموقع إلكتروني التواصل مع نظام آخر دون الحاجة إلى بناء النظام بالكامل من جديد.
3. مشاركة البيانات
يمكن توفير البيانات لأكثر من تطبيق.
مثلًا:
تطبيق الهاتف + موقع الويب + لوحة الإدارة
يمكن أن تستخدم جميعها نفس الـ API.
4. التكامل مع الخدمات الخارجية
يمكن للتطبيق استخدام خدمات أخرى مثل:
- الخرائط
- الدفع الإلكتروني
- الرسائل
- البريد الإلكتروني
- الطقس
- الذكاء الاصطناعي
- التحليلات
وغيرها.
API والذكاء الاصطناعي
أصبحت API مهمة جدًا مع انتشار الذكاء الاصطناعي.
مثلًا، يمكن للمطور بناء تطبيق خاص به وإرسال سؤال إلى خدمة ذكاء اصطناعي عبر API.
يكون المسار تقريبًا:
تطبيقك → API → نموذج الذكاء الاصطناعي → API → تطبيقك
ثم يحصل التطبيق على الإجابة ويعرضها للمستخدم.
وبهذه الطريقة لا يحتاج المطور إلى تشغيل نموذج ذكاء اصطناعي ضخم على هاتف المستخدم.
ما الفرق بين API وBackend؟
هناك فرق بينهما.
Backend هو الجزء المسؤول عن منطق التطبيق ومعالجة البيانات والعمليات التي تحدث على الخادم.
أما API فهي الواجهة التي تسمح للتطبيقات بالتواصل مع هذا الـ Backend.
يمكن التفكير فيها هكذا:
Frontend → API → Backend → Database
لكن في المشاريع الحقيقية قد تكون البنية أكثر تعقيدًا من ذلك.
ما الفرق بين API وDatabase؟
قاعدة البيانات مسؤولة عن تخزين البيانات.
أما API فهي وسيلة للوصول إلى هذه البيانات بطريقة منظمة وفق الصلاحيات والقواعد التي يحددها النظام.
مثلًا:
Database:
تخزن أسماء المستخدمين والطلبات والمنتجات.
API:
تحدد كيف يستطيع التطبيق الحصول على هذه البيانات أو تعديلها.
لذلك لا ينبغي عادةً إعطاء تطبيق الهاتف وصولًا مباشرًا إلى قاعدة البيانات.
هل كل API تستخدم JSON؟
لا.
لكن JSON من أكثر صيغ البيانات انتشارًا في Web APIs بسبب بساطته وسهولة التعامل معه في معظم لغات البرمجة.
هناك أيضًا صيغ وتقنيات أخرى مثل:
- XML
- Form Data
- GraphQL
- Protocol Buffers
ويعتمد الاختيار على النظام والتقنية المستخدمة.
كيف يبدأ المبرمج بتعلم API؟
إذا كنت مبتدئًا، يمكنك تعلم API بهذا الترتيب:
- فهم HTTP.
- تعلم GET وPOST وPUT وPATCH وDELETE.
- تعلم JSON.
- فهم Request وResponse.
- تعلم Status Codes.
- تعلم Authentication.
- تجربة REST API.
- استخدام أدوات مثل Postman لاختبار API.
- بناء API بسيطة بنفسك.
- ربطها بتطبيق حقيقي.
أهم Status Codes يجب معرفتها
عند التعامل مع API ستظهر لك أرقام تسمى HTTP Status Codes.
من أشهرها:
- 200 — تم الطلب بنجاح.
- 201 — تم إنشاء مورد جديد.
- 400 — الطلب غير صحيح.
- 401 — غير مصرح أو يحتاج إلى تسجيل دخول.
- 403 — الوصول ممنوع.
- 404 — المورد غير موجود.
- 500 — خطأ في الخادم.
فهم هذه الأكواد يساعدك كثيرًا عند اكتشاف الأخطاء في التطبيقات.
الخلاصة
API هي واحدة من أهم التقنيات في تطوير البرمجيات الحديثة.
فهي تعمل كحلقة وصل بين التطبيقات والخوادم والأنظمة المختلفة، وتسمح بتبادل البيانات وتنفيذ العمليات بطريقة منظمة.
وعندما تفهم طريقة عمل:
Request → API → Backend → Database → Response
ستبدأ بفهم جزء كبير من طريقة عمل تطبيقات الهاتف والمواقع الحديثة.
لذلك فإن تعلم API ليس مجرد موضوع إضافي للمبرمج، بل هو مهارة أساسية لكل من يريد تطوير تطبيقات ومواقع وأنظمة متكاملة.

تحميل كتاب اساسيات لغة البرمجة دارت
عن دليل شنكال



