Apidog

منصة تطوير API تعاونية متكاملة

تصميم API

توثيق API

تصحيح أخطاء API

محاكاة API

اختبار API الآلي

نظرة أقرب في استدعاءات واجهة برمجة التطبيقات REST

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

Amir Hassan

Amir Hassan

Updated on نوفمبر 29, 2024

هل عملت مع واجهات برمجة التطبيقات REST من قبل؟ إذا كنت قد عملت، فهناك احتمال أنك قد رأيت العبارة "استدعاءات واجهات برمجة التطبيقات REST"!

💡
Apidog هي منصة جديدة وقوية لتطوير واجهات برمجة التطبيقات تسمح لك ببناء واجهات من الصفر. سواء كنت مطورًا مستقلًا أو تعمل ضمن فريق، يمكن أن تدعم Apidog احتياجاتك في التطوير!

إذا كنت ترغب في تجربة Apidog، كل ما عليك فعله هو النقر على الزر أدناه! 👇 👇 👇
زر

جوهر استدعاءات واجهات برمجة التطبيقات REST

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

تحليل استدعاءات واجهات برمجة التطبيقات REST

يمكن فصل استدعاءات واجهات برمجة التطبيقات REST إلى ثلاثة كيانات فردية (وكل واحدة منها تستحق مقالًا خاصًا بها!). التحليل يبدو كالتالي:

REST: REST هي اختصار لنقل الحالة التمثيلية. REST هو مجموعة من المبادئ المعمارية تم تصميمها بحيث يتم بناء واجهات برمجة التطبيقات لتكون متسقة وقابلة للتوسع وسهلة التعلم. كما أنها مسؤولة عن كيفية هيكلة واجهة برمجة التطبيقات وكيفية تنسيق الطلبات والاستجابات المقابلة.

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

استدعاءات: في واجهات برمجة التطبيقات، الاستدعاءات هي الرسائل التي تُرسل بين التطبيقات عبر واجهة برمجة التطبيقات. ستتضمن معلومات مفيدة، مثل نوع البيانات المطلوبة والإجراء المرغوب.

تفسير خطوة بخطوة لكيفية عمل استدعاءات واجهات برمجة التطبيقات REST

تدفق البيانات بين واجهة العميل وواجهة البرمجة والخادم
تدفق البيانات بين العملاء وقاعدة البيانات
  1. العميل (تطبيقك): يقوم بإجراء استدعاء واجهة برمجة التطبيقات REST عن طريق إرسال رسالة طلب إلى الخادم (التطبيق الذي يقدم البيانات أو الخدمة) عبر واجهة برمجة التطبيقات. يتضمن هذا الطلب تفاصيل مثل المورد المحدد الذي يريده (مثل ملف تعريف المستخدم)، والإجراء المرغوب (مثل استرجاع البيانات)، وأي بيانات ضرورية (مثل بيانات اعتماد المصادقة).
  2. الخادم: بمساعدة واجهة برمجة التطبيقات كوسيلة للتواصل، يتلقى الخادم الطلب ويعالجها. يسترجع البيانات المطلوبة، ينفذ الإجراء المرغوب، أو يرسل رسالة خطأ إذا كانت هناك مشكلة.
  3. الخادم: يرسل رسالة استجابة مرة أخرى إلى العميل عبر واجهة برمجة التطبيقات، تحتوي على البيانات المطلوبة، تأكيد الإجراء، أو رسالة خطأ.
  4. العميل: يستقبل الاستجابة ويقوم بتفسيرها بناءً على التنسيق المسبق التعريف (غالبًا JSON). ثم يستخدم المعلومات المستلمة لغرضه المنشود. قد يكون ذلك قائمة بالخضروات التي تبدأ بالحرف S، أو ربما عرض جميع مباريات كرة القدم التي تحدث في يوليو.

أمثلة على استدعاءات واجهات برمجة التطبيقات REST المكتوبة بلغات عميل مختلفة

إليك بعض واجهات برمجة التطبيقات REST التي يمكنك استخدامها باستخدام لغات عميل مختلفة - يرجى ملاحظة أن عينات التعليمات البرمجية المقدمة في هذه المقالة ليست 100% تعمل، حيث تتطلب تعديلات إضافية لتناسب متطلبات واجهة برمجة التطبيقات الخاصة بك!

طلب GET لاسترجاع ملف تعريف مستخدم (Python):

import requests

url = "https://api.example.com/users/123"

response = requests.get(url)

if response.status_code == 200:
  # طلب ناجح، الوصول إلى البيانات في response.json()
  user_data = response.json()
  print(f"اسم المستخدم: {user_data['name']}")
  print(f"البريد الإلكتروني: {user_data['email']}")
else:
  print(f"خطأ: {response.status_code}")

يسترجع طلب GET أعلاه ملف تعريف عبر عنوان https://api.example.com/users/123، حيث إذا استلم كود الحالة 200، فسوف يطبع الاستجابة التي تتضمن اسم المستخدم والبريد الإلكتروني لملف تعريف الشخص. وإلا، سيطبع خطأ: كود الحالة xxx حيث xxx يمكن أن يكون أي كود حالة يدل على حدوث خطأ (طلب غير ناجح).

طلب POST لإنشاء منتج جديد (JavaScript):

fetch("https://api.example.com/products", {
  method: "POST",
  headers: {
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    name: "منتج جديد",
    price: 19.99,
    description: "هذا منتج جديد!"
  })
})
.then(response => response.json())
.then(data => {
  console.log("تم إنشاء المنتج بنجاح:", data);
})
.catch(error => {
  console.error("خطأ في إنشاء المنتج:", error);
});

عبر عنوان https://api.example.com/products، يرغب هذا الطلب POST في إضافة سجل جديد إلى قاعدة البيانات. إذا كانت الاستجابة المستلمة تتوافق مع كود الحالة الناجح، فسوف يطبع تم إنشاء المنتج بنجاح: أدخل اسم المنتج. وإلا، ستظهر رسالة خطأ: خطأ في إنشاء المنتج: أدخل رسالة الخطأ.

طلب PUT لتحديث عنوان مستخدم (Java):

import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;

public class UpdateUserAddress {

  public static void main(String[] args) throws Exception {
    String url = "https://api.example.com/users/123/address";
    String newAddress = "123 Main St, Anytown, CA";

    HttpClient client = HttpClient.newHttpClient();
    HttpRequest request = HttpRequest.newBuilder()
      .uri(URI.create(url))
      .PUT(HttpRequest.BodyPublishers.ofText(newAddress))
      .header("Content-Type", "text/plain")
      .build();

    HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());

    if (response.statusCode() == 200) {
      System.out.println("تم تحديث العنوان بنجاح!");
    } else {
      System.err.println("خطأ في تحديث العنوان: " + response.statusCode());
    }
  }
}

يحدث طلب PUT هذا تحديثًا لعنوان مستخدم بمساعدة معلمات المسار (العنوان الموجود في عينة الكود هو: https://api.example.com/users/123/address. إذا تم بنجاح، تظهر الرسالة تم تحديث العنوان بنجاح!، وإلا، ستظهر رسالة الخطأ خطأ في تحديث العنوان: أدخل كود حالة الخطأ.

طلب DELETE لإزالة منتج (Python):

import requests

url = "https://api.example.com/products/10"

response = requests.delete(url)

if response.status_code == 204:
  print("تم حذف المنتج بنجاح!")
else:
  print(f"خطأ في حذف المنتج: {response.status_code}")

طلبات DELETE مثل الطلب أعلاه تقوم بإزالة سجل من قاعدة البيانات عبر عنوان https://api.example.com/products/10. إذا تطابق كود الاستجابة مع 204، ستحصل على رسالة تقول تم حذف المنتج بنجاح!. إذا لم يكن كذلك، ستتلقى رسالة الخطأ: خطأ في حذف المنتج: أدخل كود حالة الخطأ.

تهيئة استدعاء واجهة برمجة التطبيقات REST باستخدام Apidog

Apidog هي أداة تطوير واجهة برمجة التطبيقات لمطوري واجهات برمجة التطبيقات. إنها مليئة بجميع المواصفات والتعديلات المطلوبة من مطور واجهات برمجة التطبيقات، سواء كان جديدًا أو ذا خبرة! بالإضافة إلى ذلك، يمكنك أيضًا صياغة طلب واجهة برمجة التطبيقات الخاصة بك لبدء استدعاء واجهة برمجة التطبيقات REST الخاصة بك.

تصميم واجهة برمجة التطبيقات الحقيقية Apidog
Apidog - منصة تطوير واجهة برمجة التطبيقات الأولية

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

تكوين طلب واجهة برمجة التطبيقات على Apidog

إنشاء طلب واجهة برمجة تطبيقات جديد باستخدام Apidog
قم بإنشاء طلب واجهة برمجة التطبيقات جديد باستخدام Apidog

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

إضافة تفاصيل إلى طلب واجهة برمجة التطبيقات Apidog
املأ التفاصيل لطلب واجهة برمجة التطبيقات الخاصة بك

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

بمجرد ملء جميع الحقول المطلوبة، يمكنك الضغط على تشغيل لإرسال استجابة إلى تطبيقك، ومراقبة الاستجابة التي تستقبلها!

استخدم Apidog لإنشاء كود لغة العميل

إذا كنت بحاجة إلى بعض المساعدة في البرمجة، يمكن أن تساعدك Apidog في ذلك!

زر لتوليد كود لغة العميل Apidog
انقر على الزر لتوليد كود العميل

حول الزاوية العلوية اليمنى من نافذة Apidog، ابحث واضغط على زر </>، كما هو موضح بالسهم في الصورة أعلاه.

توليد كود Java باستخدام Apidog
صورة مثال توضح توليد الكود لـ Java 

يمكنك بعد ذلك اختيار لغة العميل التي تحتاج مساعدة بها. تظهر الصورة أعلاه مثالًا على لغة العميل Java.

الخاتمة

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

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

ما هي مزايا استخدام cURL بدلاً من المتصفح: دليل شاملوجهة نظر

ما هي مزايا استخدام cURL بدلاً من المتصفح: دليل شامل

cURL يتفوق في أتمتة المهام على الويب، موفراً مرونة وكفاءة لاحتياجات مطوري نقل البيانات.

Amir Hassan

فبراير 29, 2024

ما هو التصميم أولاً (مع الأنماط/المبادئ/أفضل الممارسات)وجهة نظر

ما هو التصميم أولاً (مع الأنماط/المبادئ/أفضل الممارسات)

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

Amir Hassan

فبراير 29, 2024

كيفية اختيار نوع محتوى استجابة واجهة برمجة التطبيقات المناسب لمشروعكوجهة نظر

كيفية اختيار نوع محتوى استجابة واجهة برمجة التطبيقات المناسب لمشروعك

تعرف على مزايا وعيوب أنواع محتوى استجابة API المختلفة مثل JSON وXML وHTML وغيرها، وكيفية اختيار الأنسب لمشروعك.

Amir Hassan

فبراير 29, 2024