تخطَّ إلى المحتوى
NerdLevelTech
تطوير الواجهة الخلفية

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

تعلّم ما هي واجهات برمجة التطبيقات، وكيف تعمل، وأنواعها، وتنسيقات البيانات، ومبادئ REST، وممارسات أمنية، ومثال كامل لـ Flask API

Nerd Level Techنُشر في تم التحديث ٣ دقائق للقراءةEnglish
صورة غلاف: دليل كامل: افهم كل شيء عن واجهات برمجة التطبيقات مع أمثلة

API نظرة عامة

قد تكون سمعت مصطلح API من قبل. لكن ما المقصود به بالضبط، ولماذا هو مهم؟

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


العقلية عند بناء API

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

تدفق تسجيل الدخول الاجتماعي


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

  • SOAP واجهات برمجة التطبيقات: قائم على XML، منظم، صارم.
  • XML-RPC واجهات برمجة التطبيقات: أسلوب RPC مع حمولات XML.
  • REST واجهات برمجة التطبيقات: خفيف، عديم الحالة، يستخدم طرق HTTP.
  • JSON-RPC واجهات برمجة التطبيقات: RPC مع حمولات JSON.
  • GraphQL واجهات برمجة التطبيقات: قائم على الاستعلامات، فعّال، حديث.
  • OpenAPI/Swagger: عقود API قابلة للقراءة آليًا.

API أنواع

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


فهم XML مقابل JSON

XML vs JSON

  • XML: مطول، قائم على العلامات، منظم.
  • JSON: خفيف، ودود للإنسان، مستخدم على نطاق واسع.

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

REST واجهات برمجة التطبيقات عديم الحالة وتستخدم أفعال HTTP مثل GET، POST، PUT، و DELETE.

عديم الحالة REST

مثال على الطلب:

http
GET https://API.weather.com/forecast?zip=90210&appid=YOUR_API_KEY

الاستجابة:

json
{
  "location": "90210",
  "forecast": "Sunny, 25°C"
}

عمليات CRUD مع REST

استرجاع البيانات (GET):

js
fetch("https://API.example.com/data")
  .then(res => res.json())
  .then(console.log);

إنشاء البيانات (POST):

python
import requests
response = requests.post("https://API.example.com/data", json={"name": "John"})
print(response.json())

تحديث البيانات (PUT):

js
fetch("https://API.example.com/data/123", {
  method: "PUT",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({ age: 26 })
})

حذف البيانات (DELETE):

python
import requests
requests.delete("https://API.example.com/data/123")

تأمين REST API

تأمين API

  1. استخدم HTTPS
  2. نفّذ المصادقة/الترخيص (JWT, OAuth)
  3. طبّق تقييد المعدل
  4. التحقق من المدخلات

مثال: مصادقة JWT في Express.js

js
app.get("/protected", (req, res) => {
  const token = req.headers["authorization"].split(" ")[1];
  jwt.verify(token, "secret", (err, user) => {
    if (err) return res.sendStatus(403);
    res.send(`Welcome, ${user.name}`);
  });
});

توثيق API

مثال توثيق API

  • كن واضحًا ومختصرًا
  • قدم أمثلة
  • وثق المعلمات والاستجابات

مثال (طقس API):

http
GET /weather?location=London&units=metric

الاستجابة:

json
{
  "location": "London",
  "temperature": 10,
  "conditions": "Cloudy"
}

مثال كامل: بناء Flask API

Flask API مثال

python
from flask import Flask, jsonify, request
app = Flask(__name__)

products = [
  {"id": 1, "name": "Product 1", "price": 10.0},
  {"id": 2, "name": "Product 2", "price": 20.0},
]

@app.route("/products", methods=["GET"])
def get_products():
    return jsonify(products)

@app.route("/products/<int:id>", methods=["GET"])
def get_product(id):
    return jsonify(next((p for p in products if p["id"] == id), {"message": "Not found"}))

if __name__ == "__main__":
    app.run(debug=True)

الخلاصة

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

ابقَ على مسار النيرد

رسالتان كلّ أسبوع: شرح معمّق لموضوع واحد يوم الاثنين، وملخّص يوم الخميس للدورات والأدلّة والمقالات والبودكاست والوظائف.

بدون إزعاج. إلغاء الاشتراك في أي وقت.