---
title: 'دليل كامل: افهم كل شيء عن واجهات برمجة التطبيقات مع أمثلة'
description: تعلّم ما هي واجهات برمجة التطبيقات، وكيف تعمل، وأنواعها، وتنسيقات البيانات، ومبادئ REST، وممارسات أمنية، ومثال كامل لـ Flask API
url: https://nerdleveltech.com/ar/api-full-guide-with-images
language: ar
date: '2023-03-10'
updated: '2025-09-16'
category: backend
tags:
  - API
  - REST
  - GraphQL
  - JSON
  - Web Development
markdown_url: https://nerdleveltech.com/ar/api-full-guide-with-images.md
attribution: 'Source: NerdLevelTech — https://nerdleveltech.com/ar/api-full-guide-with-images'
terms: https://nerdleveltech.com/llms.txt
---

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

![API نظرة عامة](https://nerdleveltech.com/images/API-overview.png)

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

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

---

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

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

![تدفق تسجيل الدخول الاجتماعي](https://nerdleveltech.com/images/API-social-login.png)

---

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

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

![API أنواع](https://nerdleveltech.com/images/API-types.png)

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

---

## فهم XML مقابل JSON

![XML vs JSON](https://nerdleveltech.com/images/xml-vs-json.png)

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

---

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

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

![عديم الحالة REST](https://nerdleveltech.com/images/API-rest-stateless.png)

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

```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](https://nerdleveltech.com/images/API-security.png)

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](https://nerdleveltech.com/images/API-docs.png)

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

مثال (طقس API):

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

الاستجابة:

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

---

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

![Flask API مثال](https://nerdleveltech.com/images/API-flask.png)

```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)
```

---

## الخلاصة

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