You are on page 1of 1

‫‪#89:/;-‬يقدم‪#‬أحدث‪#‬إضافة‪#‬إلى‪#‬النظام‪#‬ا‪Ç‬ساسي‪#89:/;-#،#‬إدارة‪[#8B6#‬‬ ‫"‬

‫حل‪#‬كامل‪r#‬دارة‪#‬دورة‪#‬حياة‪78B6#‬‬
‫اعرف‪#‬ا‪9‬زيد‬

‫فهم!أساسيات!واجهات‬
‫برمجة!تطبيقات!‪"#$%‬‬

‫!!'&‪#‬تحريم‪#‬نعيم ‪#!$ %‬يناير‪!"!"#،‬‬

‫‪@#8A#8B6‬واجهة‪#‬برنامج‪#‬التطبيق?‪#‬هي‪#‬مجموعة‪#‬من‬
‫القواعد‪#‬التي‪#‬تمكن‪#‬البرامج‪#‬ا‪9‬ختلفة‪#‬من‪#‬التواصل‪#‬مع‬
‫بعضها‪#‬البعض‪#7‬توضح‪#‬الطريقة‪#‬ا‪9‬ناسبة‪9#‬طور‬
‫البرامج‪r#‬نشاء‪#‬برنامج‪#‬على‪#‬خادم‪#‬يتواصل‪#‬مع‬
‫تطبيقات‪#‬العميل‪#‬ا‪9‬ختلفة‪7‬‬

‫يمكن‪#‬دمج‪#‬واجهات‪#‬برمجة‪#‬التطبيقات‪#‬للتطبيقات‬
‫ا‪9‬ختلفة‪#‬م ًعا‪#‬لتبادل‪#‬البيانات‪#‬وأداء‪#‬وظيفة‪#‬محددة‪،#‬‬
‫وبالتالي‪#‬تمك|‪#‬التفاعل‪#‬ب|‪#‬التطبيقات‪#7‬تستخدم‬
‫مواقع‪#‬الويب‪#‬ا‪9‬ختلفة‪#‬مثل‪#8.-E<A#‬و‪#C<<D+/#‬و‬
‫‪#)-J/K<<H‬و‪#G1AH/I6A#‬و‪#F>1::/;#‬واجهات‬
‫برمجة‪#‬التطبيقات‪#‬القائمة‪#‬على‪#502F#‬والتي‪#‬تتيح‬
‫للمستخدم|‪#‬التواصل‪#‬مع‪#‬هذه‪#‬الخدمات‪#‬السحابية‪7‬‬

‫ستتعمق‪#‬هذه‪#‬ا‪9‬دونة‪#‬في‪#‬تعريف‪#502F#8B6#‬وتغطي‬
‫جميع‪#‬جوانبها‪#‬ا‪Ç‬ساسية‪#،#‬بما‪#‬في‪#‬ذلك‪#‬ما‪#‬تمثله‬
‫‪#502F#8B6‬ومبادئها‪#‬وأساليبها‪#‬وا‪9‬زيد‪7‬‬

‫يكتشف‪L‬‬

‫ما‪#‬هو‪502F#8B6#‬؟‬

‫كيف‪#‬تعمل‪#‬واجهة‪#‬برمجة‪#‬تطبيقات‪502F#‬؟‬

‫ما‪#‬هي‪#502F=*+#8B69#‬ا‪9‬ستخدمة؟‬

‫مسرد‪#‬مصطلحات‪#502F#8B6#‬للمصطلحات‬
‫ا‪Ç‬ساسية‬

‫ميزات‪502F#8B6#‬‬

‫مبادئ‪#‬تصميم‪502F#8B6#‬‬

‫‪#89:/;-#4/A:/;Z;19/‬يجعل‪#‬تكامل‪8B6#‬‬
‫ا‪9‬ريح‪#‬أمرا‪#‬سه‪ًp‬‬
‫ً‬

‫ما هو ‪REST API‬؟‬

‫في‪#‬عام‪#،#!"""#‬حدد‪#5<'#)1/+I1AD#502F#‬على‬
‫أنه‪#‬أسلوب‪#‬ومنهجية‪#‬معمارية‪#‬تستخدم‪#‬بشكل‪#‬متكرر‬
‫في‪#‬تطوير‪#‬خدمات‪#‬ا‪r‬نترنت‪#،#‬مثل‪#‬أنظمة‪#‬الوسائط‬
‫التشعبية‪#‬ا‪9‬وزعة‪7‬‬

‫الشكل الكامل لـ ‪REST API‬‬


‫هو واجهة برمجة تطبيقات نقل‬
‫الحالة التمثيلية ا‪9‬عروفة بشكل‬
‫أكثر شيو ًعا باسم خدمة الويب‬
‫‪ .REST API‬هذا يعني أنه‬
‫عندما يتم استدعاء ‪RESTful‬‬
‫‪ ، API‬سيقوم الخادم بذلك‬
‫تحويل ‪ a‬التمثيل من ا‪9‬ورد‬
‫ا‪9‬طلوب حالة لنظام العميل‪.‬‬

‫على‪#‬سبيل‪#‬ا‪9‬ثال‪#،#‬عندما‪#‬يطلب‪#‬ا‪9‬طور‪F>1::/;#‬‬
‫‪#8B6‬لجلب‪#‬كائن‪#‬مستخدم‪@#‬مورد?‪#،#‬فإن‪#8B6#‬ستعيد‬
‫حالة‪#‬هذا‪#‬ا‪9‬ستخدم‪#‬واسمه‪#‬ومتابعيه‪#‬وا‪9‬نشورات‪#‬التي‬
‫تمت‪#‬مشاركتها‪#‬على‪#7F>1::/;#‬هذا‪#‬ممكن‪#‬بسبب‬
‫مشاريع‪#‬تكامل‪78B6#‬‬

‫يمكن‪#‬أن‪#‬يكون‪#‬تمثيل‪#‬الحالة‪#‬هذا‪#‬بتنسيق‪#M2N,#‬أو‬
‫‪#QPG‬أو‪7OFPG#‬‬

‫‪#502F#8B6‬تعريف‬

‫@ا‪9‬صدر‪?2/<K1+1:'#L‬‬

‫تقدم‪#‬بروتوكو[ت‪#‬نقل‪#‬البيانات‪#‬النموذجية‪#،#‬مثل‬
‫‪@#2N8B‬بروتوكول‪#‬الوصول‪#‬إلى‪#‬الكائنات‪#‬البسيط?‪،#‬‬
‫خدمة‪#‬ممتازة‪#‬أمن‪#‬البيانات‪#‬وس‪p‬متها‪#‬قدرات‪#7‬ع‪p‬وة‬
‫على‪#‬ذلك‪#،#‬يوفر‪#2N8B#‬منطق‪#‬إعادة‪#‬ا‪9‬حاولة‪#‬ا‪9‬دمج‬
‫للتعويض‪#‬عن‪#‬ا[تصا[ت‪#‬غير‪#‬الناجحة‪#7‬لكن‪#‬مثل‪#‬هذه‬
‫البروتوكو[ت‪#‬يصعب‪#‬العمل‪#‬معها‪#502F=*+#8B6#7‬هو‬
‫بديل‪#‬أبسط‪#‬تم‪#‬تطويره‪#‬بشكل‪#‬كبير‪#‬في‪#‬السنوات‬
‫القليلة‪#‬ا‪9‬اضية‪#7‬غالبًا‪#‬ما‪#‬يتم‪#‬الخلط‪#‬ب|‪#‬الناس‪#‬فيما‬
‫يتعلق‪#‬بمعايير‪#7502F#‬با‪9‬قارنة‪#‬مع‪#،#2N8B#‬خدمات‬
‫الويب‪#‬القديمة‪#،#‬فإن‪#502F#‬أكثر‪#‬مرونة‪#‬وسهولة‪#‬في‬
‫التنفيذ‪7‬‬

‫عادةً‪#‬ما‪ُ #‬يفضل‪#‬استخدام‪#502F#‬على‪#2N8B#‬ا‪Ç‬كثر‬
‫قوة‪#‬مثل‪#‬ا[ستخدامات‪#‬السابقة‪#‬عرض‪#‬نطاق‪#‬أقل‪#،‬مما‬
‫يجعلها‪#‬أكثر‪#‬م‪p‬ءمة‪#‬لخدمات‪#‬الويب‪#‬الشاملة‪#‬في‬
‫العالم‪#7‬يستخدم‪#‬بروتوكول‪#OFFB#‬لجلب‪#‬البيانات‪#‬أو‬
‫تنفيذ‪#‬العمليات‪#‬في‪#‬العديد‪#‬من‪#‬تنسيقات‪#‬البيانات‪@#‬مثل‬
‫‪#QPG‬و‪#?M2N,#‬؛‪#‬يسمح‪#‬بعمليات‪#‬أسرع‪7‬‬

‫وبالتالي‪#،#‬يستخدم‪#2N8B#‬نقل‪#‬بيانات‪،#QPG#‬‬
‫وتحديد‪#‬العمليات‪#‬كمنافذ‪#R2SG#‬أحادية‪#‬ا[تجاه‪#‬مع‬
‫العديد‪#‬من‪#‬مثي‪p‬ت‪#‬العملية‪#‬التي‪#‬تشترك‪#‬في‪#‬نفس‬
‫ا‪r‬جراءات‪#7‬في‪#،#502F#‬يتم‪#‬وصف‪#‬العمليات‪#‬في‬
‫الرسائل‪#‬نفسها‪#7‬ع‪p‬وة‪#‬على‪#‬ذلك‪#،#‬هناك‪#‬اتجاه‪#‬واحد‬
‫لكل‪#‬حالة‪#‬عملية‪7‬‬

‫هناك‪#‬اخت‪p‬ف‪#‬آخر‪#‬ب|‪#2N8B#‬و‪#502F#‬يكمن‪#‬في‬
‫كيفية‪#‬اقتران‪#‬هذه‪#‬البروتوكو[ت‪#2N8B#7‬مرتبط‬
‫بإحكام‪#،#‬في‪#‬ح|‪#‬أن‪#‬ا‪Ç‬خير‪#‬مرتبط‪#‬بشكل‪#‬ضعيف‪7‬‬
‫يعني‪#‬ا[قتران‪#‬الضعيف‪#‬أن‪#‬الوحدات‪#‬النمطية‪#‬مستقلة‬
‫‪#،‬وا[خت‪p‬فات‪#‬في‪#‬إحداها‪#[#‬تزعج‪#‬عمل‪#‬ا‪è‬خرين‪7‬‬
‫نتيجة‪#‬لذلك‪#،#‬هناك‪#‬مرونة‪#‬وقابلية‪r#‬عادة‪#‬ا[ستخدام‬
‫عند‪#‬إضافة‪#‬الوحدات‪#‬أو‪#‬استبدالها‪#‬أو‪#‬تعديلها‪#7‬من‬
‫ناحية‪#‬أخرى‪#،#‬يعني‪#‬ا[قتران‪#‬ا‪9‬حكم‪#‬أن‪#‬الوحدات‬
‫تميل‪#‬إلى‪#‬أن‪#‬تكون‪#‬معتمدة‪#‬على‪#‬بعضها‪#‬البعض‪#7‬لذلك‬
‫‪#،‬يمكن‪#‬أن‪#‬يكون‪#‬ل‪p‬خت‪p‬فات‪#‬في‪#‬وحدة‪#‬واحدة‪#‬تأثير‬
‫على‪#‬مستوى‪#‬النظام‪#7‬كل‪#‬هذه‪#‬ا[خت‪p‬فات‪#‬تجعل‬
‫واجهة‪#‬برمجة‪#‬التطبيقات‪#8B6#‬مريحة‪7‬‬

‫تستخدم‪#‬العديد‪#‬من‪#‬التطبيقات‪#‬وا‪9‬شاريع‪#‬واجهات‬
‫برمجة‪#‬تطبيقات‪#502F#‬لنقل‪#‬البيانات‪#،#‬وتتبنى‬
‫الشركات‪#‬بشكل‪#‬متزايد‪#‬خدمات‪#‬الويب‪502F=*+#‬‬
‫للتمتع‪#‬بالنمو‪#‬ا‪Ç‬فقي‪7‬‬

‫أنظر!كيف!'&‪!"#$%‬خدمات‬
‫البيانات!‬
‫يبسط!تكامل!‪()*+!",-‬‬

‫عرض!العرض!التوضيحي!‬

‫كيف تعمل واجهة برمجة تطبيقات‬


‫‪REST‬؟‬

‫يحدد‪#502F#‬بنية‪#‬ملف‪#78B6#‬يلتزم‪#‬ا‪9‬طورون‬
‫بمجموعة‪#‬محددة‪#‬من‪#‬القواعد‪#‬عند‪#‬تصميم‪#‬واجهة‬
‫برمجة‪#‬التطبيقات‪#7‬على‪#‬سبيل‪#‬ا‪9‬ثال‪#،#‬ينص‪#‬أحد‬
‫القوان|‪#‬على‪#‬أن‪#‬ا[رتباط‪#‬بعنوان‪#35G#‬يجب‪#‬أن‬
‫يعرض‪#‬بعض‪#‬ا‪9‬علومات‪7‬‬

‫يُعرف‪#‬كل‪#‬عنوان‪#35G#‬باسم‪#‬طلب‪#،#‬في‪#‬ح|‪#‬تُعرف‬
‫البيانات‪#‬التي‪#‬يتم‪#‬إرجاعها‪#‬باسم‪#‬ا[ستجابة‪7‬‬

‫‪#502F#8B6‬يكسر‪#‬ا‪9‬عاملة‪r#‬نشاء‪#‬سلسلة‪#‬من‬
‫ا‪9‬كونات‪#‬الصغيرة‪#7‬يتناول‪#‬كل‪#‬مكون‪#‬جانبًا‪#‬أساس ًيا‬
‫محد ًدا‪#‬من‪#‬ا‪9‬عاملة‪#7‬هذا‪#‬النموذج‪#‬يجعل‪#‬منه‪#‬نهج‬
‫تطوير‪#‬مرن‪7‬‬

‫تستفيد‪#‬واجهة‪#‬برمجة‪#‬تطبيقات‪#502F#‬من‪#‬طرق‬
‫‪#OFFB‬ا‪9‬وصوفة‪#‬بواسطة‪#‬بروتوكول‪75)4#!TUT#‬‬
‫يستخدم‪#‬طلبات‪#OFFB#‬التالية‪L‬‬

‫الحصول!على‪#‬طلب‪#‬لجلب‪#‬البيانات‬

‫ضع‪#‬طلب!لتغيير‪#‬حالة‪#‬البيانات‪@#‬مثل‪#‬كائن‪#‬أو‬
‫ملف‪#‬أو‪#‬كتلة?‬

‫طلب!&‪r#"#$%‬نشاء‪#‬البيانات‬

‫حذف!طلب‪#‬للقضاء‪#‬عليه‬

‫يمكن‪#‬رؤية‪#‬أفعال‪#OFFB#‬أو‪#‬أكواد‪#‬الحالة‪#‬ا‪9‬ختلفة‬
‫التي‪#‬تستخدمها‪#‬واجهات‪#‬برمجة‪#‬تطبيقات‪#502F#‬هنا‪7‬‬

‫ما هي ‪ RESTful APIs‬ا‪9‬ستخدمة؟‬

‫لفهم‪#‬ما‪#‬هو‪#502F=*+#8B6#‬بشكل‪#‬أفضل‪#،#‬و‪9‬اذا‪#‬يتم‬
‫استخدامه‪#‬وكيف‪#‬يعمل‪#،#‬دعنا‪#‬نفكر‪#‬في‪#‬مثال‪7‬‬

‫لنفترض‪#‬أنك‪#‬تريد‪#‬مشاهدة‪#‬مقاطع‪#‬فيديو‪#‬تعليمية‪#‬حول‬
‫‪W‬تكامل‪#‬البيانات‪#W‬على‪#‬يوتيوب‪#7‬تذهب‪#‬إلى‪V<*F*K/#‬‬
‫‪#،‬وتكتب‪X#‬تكامل‪#‬البيانات‪#X‬في‪#‬حقل‪#‬البحث‪#،#‬واضغط‬
‫على‪#‬إدخال‪#،#‬وستظهر‪#‬قائمة‪#‬مقاطع‪#‬الفيديو‪#‬حول‬
‫تكامل‪#‬البيانات‪#7‬حق؟‬

‫تعمل‪#‬واجهة‪#‬برمجة‪#‬تطبيقات‪#502F=*+#‬بشكل‬
‫مشابه‪#7‬أنت‪#‬تبحث‪#‬عن‪#‬شيء‪#‬ما‪#‬وترجع‪#‬قائمة‪#‬النتائج‬
‫من‪#‬الخدمة‪#‬التي‪#‬طلبتها‪7‬‬

‫في‪#‬تقنية‪#،#502F#‬ا[فتراض‪#‬هو‪#‬أن‪#‬جميع‪#‬ا‪9‬كا‪9‬ات‬
‫عديمة‪#‬الحالة‪#7‬هذا‪#‬يعني‪#‬أن‪#‬خدمة‪#[#502F#‬يمكنها‬
‫ا[حتفاظ‪#‬بأي‪#‬شيء‪#‬ب|‪#‬عمليات‪#‬التنفيذ‪#،#‬مما‪#‬يجعلها‬
‫مفيدة‪#‬في‪#‬التطبيقات‪#‬السحابية‪#7‬وذلك‪Ç#‬نه‪#‬يمكن‪#‬إعادة‬
‫تعي|‪#‬ا‪9‬كونات‪#‬عديمي‪#‬الجنسية‪#‬بسهولة‪#‬في‪#‬حالة‬
‫الفشل‪#7‬ع‪p‬وة‪#‬على‪#‬ذلك‪#،#‬يمكن‪#‬تحجيمها‪#‬بسهولة‬
‫‪9‬راعاة‪#‬اخت‪p‬فات‪#‬الحمل‪#7‬هذا‪Ç#‬نه‪#‬يمكن‪#‬إرسال‪#‬أي‬
‫طلب‪#‬إلى‪#‬أي‪#‬مثيل‪#‬من‪#‬ا‪9‬كون‪7‬‬

‫نظرا‪#‬لعدم‪#‬إمكانية‪#‬ا[حتفاظ‪#‬بأي‪#‬بيانات‪#‬يجب‬
‫ً‬
‫استرجاعها‪#‬من‪#‬خ‪p‬ل‪#‬ا‪9‬عاملة‪#‬ال‪p‬حقة‪#،#‬فإن‪502F#‬‬
‫هو‪#‬البروتوكول‪#‬ا‪9‬طلوب‪#‬ل‪p‬تصال‪#‬با‪r‬نترنت‪#7‬كما‪#‬ذكرنا‬
‫ً‬
‫ا‪#،#‬فإن‪#502F#8B6#‬التكنولوجيا‪#‬مفيدة‪#‬أيضا‬ ‫ساب ًق‬
‫في‪#‬ا[تصال‪#‬بالتطبيقات‪#‬السحابية‪#،#‬حيث‪#‬يحتاج‬
‫الوصول‪#‬إلى‪#‬خدمة‪#‬عبر‪#‬واجهة‪#‬برمجة‪#‬التطبيقات‪#‬إلى‬
‫تعديل‪#‬في‪#‬تفسير‪#‬عنوان‪735G#‬‬

‫اكتشف!كيف!قامت!شركة!مالية‬
‫بتبسيط!إدارة!ا‪8‬شروع‬

‫تحميل!ورقة!بيضاء!‬

‫فهم ا‪9‬صطلحات ا‪Ç‬ساسية‬

‫قبل‪#‬الغوص‪#‬في‪#‬ا‪9‬بادئ‪#‬التوجيهية‪#‬لتصميم‪#‬واجهات‬
‫برمجة‪#‬تطبيقات‪#،#502F#‬دعنا‪#‬نناقش‪#‬بإيجاز‪#‬ث‪p‬ثة‬
‫مصطلحات‪#‬رئيسية‪#‬لواجهة‪#‬برمجة‪#‬التطبيقات‪L‬‬

‫العميل‬

‫العميل‪#‬عبارة‪#‬عن‪#‬جهاز‪#‬أو‪#‬برنامج‪#‬يستخدم‪#‬واجهة‬
‫برمجة‪#‬التطبيقات‪#‬التي‪#‬يمكن‪#‬الوصول‪#‬إليها‪#‬بواسطة‬
‫الخادم‪#7‬على‪#‬سبيل‪#‬ا‪9‬ثال‪#،#‬عندما‪#‬تزور‪#‬موقع‬
‫‪#،#)-J/K<<H‬يكون‪#‬متصفحك‪#‬هو‪#‬العميل‪#‬الذي‬
‫يتصل‪#‬بواجهة‪#‬برمجة‪#‬تطبيقات‪)-J/K<<H#‬‬
‫ويستخدم‪#‬البيانات‪#‬ا‪9‬رسلة‪#‬مرة‪#‬أخرى‪#‬لعرض‬
‫ا‪9‬علومات‪#‬على‪#‬شاشتك‪7‬‬

‫مورد‬

‫يمكن‪#‬أن‪#‬يكون‪#‬ا‪9‬ورد‪#‬أي‪#‬كائن‪#‬يمكن‪#‬لواجهة‪#‬برمجة‬
‫التطبيقات‪#‬تقديم‪#‬معلومات‪#‬عنه‪#7‬على‪#‬سبيل‪#‬ا‪9‬ثال‪#،#‬في‬
‫حالة‪#‬واجهة‪#‬برمجة‪#‬تطبيقات‪#،#F>1::/;#‬يمكن‪#‬أن‬
‫يكون‪#‬ا‪9‬ورد‪#‬مستخد ًما‪#‬أو‪#‬ع‪p‬مة‪#‬تصنيف‪#‬أو‪#‬أي‪#‬نوع‬
‫وسائط‪#‬مثل‪#‬الصورة‪#7‬كل‪#‬مورد‪#‬له‪#‬معرف‪#‬مميز‪#‬يمكن‬
‫ا‪#‬أو‪#‬رقما‪7‬‬
‫ً‬ ‫أن‪#‬يكون‪#‬اسم‬
‫ً‬

‫ا‪9‬ورد‪#‬هو‪#‬التجريد‪#‬ا‪Ç‬ساسي‪#‬للمعلومات‪#‬في‪7502F#‬‬
‫يستخدم‪#502F#8B6#‬معرف‪#‬مورد‪#‬للتعرف‪#‬على‪#‬ا‪9‬ورد‬
‫ا‪9‬حدد‪#‬ا‪9‬تضمن‪#‬في‪#‬ا[تصال‪#‬ب|‪#‬العناصر‪#‬ا‪9‬ختلفة‪7‬‬

‫ا‪9‬خدم‬

‫الخادم‪#‬هو‪#‬أي‪#‬نظام‪#‬يحتوي‪#‬على‪#‬موارد‪#‬يريدها‬
‫العميل‪#7‬عندما‪#‬يتلقى‪#‬طلبات‪#‬العميل‪#،#‬فإنه‪#‬يوفر‬
‫ا‪9‬حتوى‪#‬للعميل‪#‬باستخدام‪#‬واجهة‪#78B6#‬يمنح‪#‬الخادم‬
‫فقط‪#‬حالة‪#‬تمثيلية‪#‬للمصدر‪#‬ولن‪#‬يمنح‪#‬وصو[ً‪#‬كام‪#ًp‬إلى‬
‫العميل‪7‬‬

‫ومن‪#‬ا‪Ç‬مثلة‪#‬ا‪9‬متازة‪#‬على‪#‬ذلك‪#‬عندما‪#‬يعرض‪#‬تطبيق‬
‫الجوال‪#‬مقاطع‪#‬فيديو‪#V<*F*K/#‬من‪#‬خ‪p‬ل‪#‬واجهته‪7‬‬
‫يستخدم‪#‬واجهة‪#‬برمجة‪#‬تطبيقات‪[#502F#‬ستدعاء‬
‫محتوى‪#‬الفيديو‪#‬من‪#V<*F*K/#‬دون‪#‬استضافته‪#‬على‬
‫نظامه‪7‬‬

‫‪9‬اذا يختار الناس واجهات برمجة‬


‫تطبيقات ‪REST‬؟‬

‫فيما‪#‬يلي‪#‬بعض‪#‬الفوائد‪#‬التي‪#‬ساهمت‪#‬في‪#‬زيادة‬
‫الطلب‪#‬على‪#‬واجهات‪#‬برمجة‪#‬تطبيقات‪L502F#‬‬

‫التدرجية‬

‫تقدم‪#502F#8B6#‬قابلية‪#‬تطوير‪#‬ممتازة‪#7‬عندما‪#‬يتم‬
‫فصل‪#‬العم‪p‬ء‪#‬والخوادم‪#،#‬يمكن‪#‬تطوير‪#‬ا‪9‬نتج‪#‬بواسطة‬
‫فريق‪#‬من‪#‬ا‪9‬طورين‪#‬دون‪#‬الكثير‪#‬من‪#‬ا‪9‬تاعب‪7‬‬
‫با‪r‬ضافة‪#‬إلى‪#‬ذلك‪#،#‬من‪#‬ا‪Ç‬سهل‪#‬دمج‪#502F#‬مع‬
‫ا‪9‬واقع‪#‬الحالية‪#‬دون‪#‬إعادة‪#‬هيكلة‪#‬البنية‪#‬التحتية‪9#‬وقع‬
‫الويب‪#7‬يتيح‪#‬ذلك‪#‬للمطورين‪#‬العمل‪#‬بشكل‪#‬أسرع‪#‬بد[ً‬
‫من‪#‬قضاء‪#‬الوقت‪#‬في‪#‬إعادة‪#‬صياغة‪#‬موقع‪#‬الويب‪#‬من‬
‫البداية‪#7‬كبديل‪#،#‬يمكنهم‪#‬فقط‪#‬إضافة‪#‬وظائف‪#‬إضافية‪7‬‬
‫هذا‪#‬يجعلها‪#‬الطريقة‪#‬ا‪Ç‬كثر‪#‬استخدا ًما‪#‬للتكامل‪7‬‬

‫ا‪9‬رونة‪#‬وقابلية‪#‬النقل‬

‫يمكن‪#‬للمستخدم|‪#‬التواصل‪#‬بسهولة‪#‬حتى‪#‬إذا‪#‬كان‬
‫خادم‪#‬العميل‪#502F#‬مستضافًا‪#‬خوادم‪#‬مختلفة‪#،‬تقدم‬
‫فائدة‪#‬أساسية‪#‬من‪#‬منظور‪#‬ا‪r‬دارة‪7‬‬

‫استق‪p‬ل‬

‫بفضل‪#‬الفصل‪#‬ب|‪#‬العميل‪#‬والخادم‪#،#‬يسهل‪#‬بروتوكول‬
‫‪#502F‬حدوث‪#‬التطورات‪#‬عبر‪#‬ا‪9‬ناطق‪#‬ا‪9‬ختلفة‪#‬بشكل‬
‫مستقل‪#7‬ع‪p‬وة‪#‬على‪#‬ذلك‪#،#‬فإن‪#‬واجهة‪#‬برمجة‪#‬تطبيقات‬
‫‪#502F‬قابلة‪#‬للتعديل‪#‬وف ًقا‪#‬للبنية‪#‬التشغيلية‪#‬والنظام‬
‫ا‪Ç‬ساسي‪#،#‬مما‪#‬يوفر‪#‬إمكانية‪#‬اختبار‪#‬العديد‪#‬من‬
‫البيئات‪#‬أثناء‪#‬التطوير‪7‬‬

‫اكتشف!كيف!يمكن!أن!يساعدك‬
‫تكامل!‪!",-‬في!الوصول!إلى‬
‫البيانات!السحابية!وتوصيلها‬

‫اعرف!ا‪8‬زيد!‬

‫مبادئ تصميم ‪REST API‬‬

‫ا‪è‬ن‪#‬بعد‪#‬أن‪#‬غطينا‪#‬ا‪Ç‬ساسيات‪#‬وتعرفنا‪#‬على‪#‬تعريف‬
‫‪#،#502F#8B69‬دعنا‪#‬ننتقل‪#‬إلى‪#‬مبادئ‪#502F#‬الستة‬
‫التي‪#‬توجه‪#‬تصميم‪L8B6#‬‬

‫خادم‪#‬العميل‬

‫يعمل‪#‬مبدأ‪#502F#‬هذا‪#‬على‪#‬مفهوم‪#‬أنه‪#‬يجب‪#‬عزل‬
‫العميل‪#‬والخادم‪#‬عن‪#‬بعضهما‪#‬البعض‪#‬والسماح‪#‬له‬
‫بالتطوير‪#‬بشكل‪#‬مستقل‪#7‬بهذه‪#‬الطريقة‪#،#‬يمكنك‬
‫تحس|‪#‬قابلية‪#‬ا‪r‬دارة‪#‬عبر‪#‬العديد‪#‬من‪#‬ا‪Ç‬نظمة‬
‫ا‪Ç‬ساسية‪#‬وزيادة‪#‬قابلية‪#‬التوسع‪#‬من‪#‬خ‪p‬ل‪#‬تبسيط‬
‫مكونات‪#‬الخادم‪#‬حيث‪#‬تكون‪#‬اهتمامات‪#‬واجهة‬
‫ا‪9‬ستخدم‪#‬منفصلة‪#‬عن‪#‬مخاوف‪#‬تخزين‪#‬البيانات‪7‬‬

‫عديم‪#‬الجنسية‬

‫وف ًقا‪9#‬بدأ‪#502F#‬هذا‪#،#‬تكون‪#‬واجهات‪#‬برمجة‬
‫التطبيقات‪#‬عديمة‪#‬الحالة‪#،#‬مما‪#‬يعني‪#‬أنه‪#‬يمكن‪#‬إجراء‬
‫ا‪9‬كا‪9‬ات‪#‬بشكل‪#‬مستقل‪#‬عن‪#‬بعضها‪#‬البعض‪#7‬ع‪p‬وة‬
‫على‪#‬ذلك‪#،#‬تتضمن‪#‬كل‪#‬مكا‪9‬ة‪#‬البيانات‪#‬ا‪Ç‬ساسية‬
‫‪r‬كمال‪#‬نفسها‪#‬بشكل‪#‬فعال‪7‬‬

‫بمعنى‪#‬آخر‪#،#‬يجب‪#‬أن‪#‬يتضمن‪#‬كل‪#‬طلب‪#‬يتم‪#‬إرساله‬
‫من‪#‬العميل‪#‬إلى‪#‬الخادم‪#‬جميع‪#‬ا‪9‬علومات‪#‬ال‪p‬زمة‪#‬لفهم‬
‫الطلب‪7‬‬

‫قابلة‪#‬للتخزين‪#‬ا‪9‬ؤقت‬

‫يمكن‪#‬أن‪#‬تتصاعد‪#‬واجهة‪#‬برمجة‪#‬التطبيقات‪#‬عديمة‬
‫الحالة‪#‬طلب‪#‬النفقات‪#‬العامة‪#‬من‪#‬خ‪p‬ل‪#‬إدارة‪#‬كميات‬
‫ضخمة‪#‬من‪#‬ا‪9‬كا‪9‬ات‪#‬الواردة‪#‬والصادرة‪#،#‬يجب‪#‬أن‬
‫يخزن‪#‬تصميم‪#502F#8B6#‬بيانات‪#‬قابلة‪#‬للتخزين‬
‫ا‪9‬ؤقت‪#7‬وف ًقا‪9#‬بدأ‪#‬تصميم‪#‬واجهة‪#‬برمجة‪#‬التطبيقات‬
‫هذا‪#،#‬يجب‪#‬تصنيف‪#‬البيانات‪#‬ا‪9‬وجودة‪#‬في‪#‬ا[ستجابة‬
‫بشكل‪#‬غير‪#‬مباشر‪#‬أو‪#‬تصنيفها‪#‬على‪#‬أنها‪#‬قابلة‬
‫للتخزين‪#‬ا‪9‬ؤقت‪#‬أو‪#‬غير‪#‬قابلة‪#‬للتخزين‪#‬ا‪9‬ؤقت‪7‬‬

‫إذا‪#‬كانت‪#‬ا[ستجابة‪#‬قابلة‪#‬للتخزين‪#‬ا‪9‬ؤقت‪#،#‬فسيتم‬
‫منح‪#‬ذاكرة‪#‬التخزين‪#‬ا‪9‬ؤقت‪#‬للعميل‪#‬الحق‪#‬في‪#‬إعادة‬
‫تدوير‪#‬بيانات‪#‬ا[ستجابة‪#‬لطلبات‪#‬مماثلة‪#‬في‪#‬ا‪9‬ستقبل‪7‬‬

‫واجهة‪#‬موحدة‬

‫لفصل‪#‬عميل‪#‬عن‪#‬الخادم‪#،#‬يجب‪#‬أن‪#‬يكون‪#‬لديك‪#‬واجهة‬
‫موحدة‪#‬تسمح‪#‬بالتطوير‪#‬ا‪9‬ستقل‪#‬للتطبيق‪#‬دون‪#‬ربط‬
‫خدماته‪#‬ونماذجه‪#‬وإجراءاته‪#‬بإحكام‪#‬مع‪#‬طبقة‪8B6#‬‬
‫نفسها‪7‬‬

‫يعمل‪#‬مبدأ‪#‬التصميم‪#‬هذا‪#‬على‪#‬تبسيط‪#‬بنية‪#‬النظام‬
‫بالكامل‪#‬وتعزيز‪#‬رؤية‪#‬ا[تصا[ت‪#7‬للوصول‪#‬إلى‪#‬واجهة‬
‫موحدة‪#،#‬يلزم‪#‬وجود‪#‬العديد‪#‬من‪#‬عناصر‪#‬التحكم‬
‫ا‪9‬عمارية‪#‬لتوجيه‪#‬أداء‪#‬العناصر‪#‬داخل‪#‬بنية‪502F#‬‬
‫‪78B6‬‬

‫يتم‪#‬تعريف‪#‬مبادئ‪#502F#‬من‪#‬خ‪p‬ل‪#‬أربعة‪#‬عناصر‬
‫تحكم‪#‬للواجهة‪#،#‬بما‪#‬في‪#‬ذلك‪#‬تحديد‪#‬ا‪9‬وارد‪#‬وإدارة‬
‫ا‪9‬وارد‪#‬من‪#‬خ‪p‬ل‪#‬العروض‪#‬والتواصل‪#‬الوصفي‪#‬الذاتي‬
‫والوسائط‪#‬التشعبية‪#‬كمحرك‪#‬لحالة‪#‬التطبيق‪7‬‬

‫نظام‪#‬الطبقات‬

‫تتضمن‪#‬بنية‪#502F#8B6#‬عدة‪#‬طبقات‪#‬تعمل‪#‬م ًعا‪#‬لبناء‬
‫تسلسل‪#‬هرمي‪#‬يساعد‪#‬في‪#‬إنشاء‪#‬تطبيق‪#‬أكثر‪#‬مرونة‬
‫وقابلية‪#‬للتوسع‪#7‬نظرا‪#‬لنظام‪#‬الطبقات‪#‬الخاص‪#‬به‪،#‬‬
‫ً‬
‫يتمتع‪#‬التطبيق‪#‬بمستوى‪#‬أمان‪#‬أفضل‪#‬حيث‪#[#‬يمكن‬
‫للمكونات‪#‬ا‪9‬وجودة‪#‬في‪#‬كل‪#‬طبقة‪#‬التفاعل‪#‬خارج‪#‬الطبقة‬
‫التالية‪#7‬ع‪p‬وة‪#‬على‪#‬ذلك‪#،#‬فإنه‪#‬يوازن‪#‬ب|‪#‬ا‪Ç‬حمال‬
‫ويقدم‪#‬مخابئ‪#‬مشتركة‪#‬للتحفيز‪#‬التدرجية‪7‬‬

‫يتمتع‪#‬نظام‪#‬بنية‪#502F#8B6#‬ذو‪#‬الطبقات‪#‬باستقرار‬
‫أكبر‪Ç#‬نه‪#‬يقيد‪#‬أداء‪#‬ا‪9‬كونات‪#7‬بحيث‪#‬يتعذر‪#‬على‪#‬كل‬
‫مكون‪X#‬رؤية‪#X‬أبعد‪#‬من‪#‬الطبقة‪#‬ا‪9‬باشرة‪#‬التي‪#‬يتداخل‬
‫معها‪7‬‬

‫كود‪#‬عند‪#‬الطلب‬

‫يسمح‪#‬مبدأ‪#502F#‬هذا‪#‬بإرسال‪#‬الترميز‪#‬أو‪#‬التطبيقات‬
‫الصغيرة‪#‬من‪#‬خ‪p‬ل‪#‬واجهة‪#‬برمجة‪#‬التطبيقات‬
‫ا‪9‬ستخدمة‪#‬داخل‪#‬التطبيق‪7‬‬

‫يسمح‪#‬تعريف‪#‬واجهة‪#‬برمجة‪#‬تطبيقات‪#502F#‬بتوسيع‬
‫وظائف‪#‬العميل‪#‬عن‪#‬طريق‪#‬تنزيل‪#‬الترميز‪#‬وتنفيذه‪#‬في‬
‫شكل‪#‬تطبيقات‪#‬أو‪#‬نصوص‪#‬برمجية‪#7‬يعمل‪#‬هذا‪#‬على‬
‫تبسيط‪#‬العم‪p‬ء‪#‬من‪#‬خ‪p‬ل‪#‬تقليل‪#‬عدد‪#‬ا‪9‬يزات‪#‬ا‪Ç‬ساسية‬
‫ليتم‪#‬تنفيذها‪#‬مسب ًقا‪7‬‬

‫في‪#‬معظم‪#‬ا‪Ç‬حيان‪#،#‬يعرض‪#‬الخادم‪#‬تمثيل‪#‬ا‪9‬وارد‬
‫الثابت‪#‬بتنسيق‪#QPG#‬أو‪#7M2N,#‬ولكن‪#‬عند‪#‬الحاجة‪،#‬‬
‫يمكن‪#‬للخوادم‪#‬تقديم‪#‬تعليمات‪#‬برمجية‪#‬قابلة‪#‬للتنفيذ‪#‬إلى‬
‫العميل‪7‬‬

‫‪ Astera‬تجعل إدارة ‪ API‬تكامل‬


‫‪ REST API‬بسيطًا‬

‫‪#502F#8B6‬قد‪#‬يكون‪#‬التكامل‪#‬صعبًا‪#‬بالنسبة‬
‫للمطورين‪#‬الجدد‪#‬حيث‪#‬قد‪#‬تفقد‪#‬القدرة‪#‬على‪#‬الحفاظ‬
‫على‪#‬الحالة‪#‬في‪#،#502F#‬كما‪#‬هو‪#‬الحال‪#‬في‬
‫الجلسات‪#7‬حل‪#‬مثل‪#89:/;-#‬إدارة‪#8B6#‬يوفر‪#‬واجهة‬
‫سحب‪#‬وإف‪p‬ت‪#‬خالية‪#‬من‪#‬التعليمات‪#‬البرمجية‪#‬لتبسيط‬
‫عملية‪#‬تطوير‪#‬وإدارة‪#‬ودمج‪#‬واجهات‪#‬برمجة‪#‬تطبيقات‬
‫‪#502F‬دون‪#‬الحاجة‪#‬إلى‪#‬كتابة‪#‬نصوص‪72YG#‬‬

‫يحتوي‪#‬الحل‪#‬على‪#‬واجهة‪#‬مستخدم‪#‬مرئية‪#‬بديهية‪#‬تبسط‬
‫العملية‪#‬بأكملها‪#‬وتحسن‪#‬ا‪r‬نتاجية‪#7‬تريد‪#‬أن‪#‬ترى‪#‬كيف‬
‫‪#89:/;-‬يمكن‪r#‬دارة‪#8B6#‬تبسيط‪#‬إدارة‪502F#8B6#‬‬
‫الخاص‪#‬بك؟‪#‬اعرض‪#‬ملف‪#‬التجريبي‪#‬ا‪9‬جاني‪7‬‬

‫!‬ ‫"‬ ‫‪#‬‬

‫مقا=ت!ذات!صلة‬

‫‪9‬اذا تحتاج إلى منصة تكامل ‪API‬؟‬

‫سواء!كنت!تعمل!في!مجال!التسويق!أو!التمويل!أو!العمليات‬
‫‪!،‬يجب!أن!تكون!قد!سمعت!الكثير!عن!تكامل!واجهة!برمجة‬
‫التطبيقات!في!"""‬
‫اقرأ!ا‪8‬زيد‬

‫تبسيط تكامل التطبيق مع متصفح ‪REST API‬‬

‫يشير!تكامل!)('!&‪!#$%‬إلى!ا[تصال!بتطبيقات!الجهات‬
‫الخارجية!التي!تستخدم!طلبات!‪!*&&(%‬للوصول!إلى‬
‫البيانات!ونقلها"!مع!العديد!من!السحابة!"""‬
‫اقرأ!ا‪8‬زيد‬

‫دليل حول كيفية استخدام واجهات برمجة التطبيقات‬


‫[ستعادة البيانات‬

‫واجهة!برمجة!التطبيقات!‪+‬على!سبيل!ا‪9‬ثال!‪!،‬واجهة!برمجة‬
‫التطبيقات‪!,‬هي!واجهة!معيارية!وآمنة!تسمح!للتطبيقات‬
‫با[تصال!والعمل!مع!"""‬
‫اقرأ!ا‪8‬زيد‬

‫سجل!للحصول!على!اخر!اخبارنا‬

‫‪()*++#,-./‬‬

‫‪(0.-1+‬‬

‫‪23&2456&0‬‬

‫تواصل!معنا‬

‫!!"!‪#!$‬‬

‫أرشيف‬

‫اختر‪#‬الشهر‬

‫الدعم‬
‫ا‪9‬وارد‬
‫ا‪9‬نتدى‬
‫وثائق!ا‪9‬نتج‬

‫الشركة‬
‫معلومات!عنا!'&‪"#$%‬‬
‫فرص!عمل‬
‫تواصل!معا‬

‫شركاؤنا‬
‫برنامج!شريك‬
‫شركاء!التكنولوجيا‬
‫الوك‪p‬ء‬

‫العم‪p‬ء‬
‫دراسة!الحا[ت‬
‫مراجعات!ا‪9‬ستخدم‬
‫برنامج!ا‪r‬نتساب‬

‫التسعير‬
‫اطلب‪#‬عرض‪#‬سعر‬

‫!"‪$#‬‬
‫سياسة!الخصوصية شروط!ا[ستخدام خريطة!ا‪9‬وقع‬

‫حقوق‪#‬الطبع‪#‬والنشر‪@#‬ج?‪#‬شنومكس‪#789:/;-#2<=:>-;/#‬كل‪#‬الحقوق‪#‬محفوظة‪7‬‬

You might also like