Professional Documents
Culture Documents
تعريف REST API ما هي واجهات برمجة تطبيقات REST (واجهات برمجة تطبيقات RESTful) ؟
تعريف REST API ما هي واجهات برمجة تطبيقات REST (واجهات برمجة تطبيقات RESTful) ؟
حل#كامل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
ً
في#عام#،#!"""#حدد#5<'#)1/+I1AD#502F#على
أنه#أسلوب#ومنهجية#معمارية#تستخدم#بشكل#متكرر
في#تطوير#خدمات#اrنترنت#،#مثل#أنظمة#الوسائط
التشعبية#ا9وزعة7
على#سبيل#ا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
أنظر!كيف!'&!"#$%خدمات
البيانات!
يبسط!تكامل!()*+!",-
عرض!العرض!التوضيحي!
يحدد#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
لفهم#ما#هو#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بادئ#التوجيهية#لتصميم#واجهات
برمجة#تطبيقات#،#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
فيما#يلي#بعض#الفوائد#التي#ساهمت#في#زيادة
الطلب#على#واجهات#برمجة#تطبيقات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زيد!
اèن#بعد#أن#غطينا#اÇساسيات#وتعرفنا#على#تعريف
#،#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
#502F#8B6قد#يكون#التكامل#صعبًا#بالنسبة
للمطورين#الجدد#حيث#قد#تفقد#القدرة#على#الحفاظ
على#الحالة#في#،#502F#كما#هو#الحال#في
الجلسات#7حل#مثل#89:/;-#إدارة#8B6#يوفر#واجهة
سحب#وإفpت#خالية#من#التعليمات#البرمجية#لتبسيط
عملية#تطوير#وإدارة#ودمج#واجهات#برمجة#تطبيقات
#502Fدون#الحاجة#إلى#كتابة#نصوص72YG#
يحتوي#الحل#على#واجهة#مستخدم#مرئية#بديهية#تبسط
العملية#بأكملها#وتحسن#اrنتاجية#7تريد#أن#ترى#كيف
#89:/;-يمكنr#دارة#8B6#تبسيط#إدارة502F#8B6#
الخاص#بك؟#اعرض#ملف#التجريبي#ا9جاني7
مقا=ت!ذات!صلة
سواء!كنت!تعمل!في!مجال!التسويق!أو!التمويل!أو!العمليات
!،يجب!أن!تكون!قد!سمعت!الكثير!عن!تكامل!واجهة!برمجة
التطبيقات!في!"""
اقرأ!ا8زيد
يشير!تكامل!)('!&!#$%إلى!ا[تصال!بتطبيقات!الجهات
الخارجية!التي!تستخدم!طلبات!!*&&(%للوصول!إلى
البيانات!ونقلها"!مع!العديد!من!السحابة!"""
اقرأ!ا8زيد
واجهة!برمجة!التطبيقات!+على!سبيل!ا9ثال!!،واجهة!برمجة
التطبيقات!,هي!واجهة!معيارية!وآمنة!تسمح!للتطبيقات
با[تصال!والعمل!مع!"""
اقرأ!ا8زيد
سجل!للحصول!على!اخر!اخبارنا
()*++#,-./
(0.-1+
23&2456&0
تواصل!معنا
!!"!#!$
أرشيف
اختر#الشهر
الدعم
ا9وارد
ا9نتدى
وثائق!ا9نتج
الشركة
معلومات!عنا!'&"#$%
فرص!عمل
تواصل!معا
شركاؤنا
برنامج!شريك
شركاء!التكنولوجيا
الوكpء
العمpء
دراسة!الحا[ت
مراجعات!ا9ستخدم
برنامج!اrنتساب
التسعير
اطلب#عرض#سعر
!"$#
سياسة!الخصوصية شروط!ا[ستخدام خريطة!ا9وقع
حقوق#الطبع#والنشر@#ج?#شنومكس#789:/;-#2<=:>-;/#كل#الحقوق#محفوظة7