السلام عليكم
في مبادئ أو قيود Constraints ال REST API  , هناك نقطتان واجهت فيهم مشكلة :
1 - Stateless

يقولون أن في REST API لا يتم حفظ بيانات الخاصة بال client أو كل request , فالبتالي يعتبر كل request جديد , لاننا لن نستخدم session أو غيرها.


2 -  Cacheable

وهنا يقولون , من المهم حفظ البيانات بحيث يسهل على السيرفر , ويقلل الضغط عليه , ويمكن استخدامها اما في جهة العميل client side أو جهة السيرفر server side .

 

وقعت في حيرة بين هذا التضارب في التعريفين ,  فما هو وجه الجمع بينهما .

المصدر :
https://restfulapi.net/rest-architectural-constraints/
شكرا

 

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية
  • 1

وعليكم السلام،

لايوجد تضارب فعلي بين المفهومين، Stateless تعني أنه لن يتم تخزين أي بيانات بخصوص حركة المستخدمين داخل السيرفر لدى كل طلب جديد، أما Cacheable فتعني أنه يجب أن يتم تخزين البيانات التي يتم طلبها بشكل متكرر من أجل تسريع التواصل بين المستخدمين والسيرفر.

كمثال إذا كانت لديك مدونة تحتوي على عدد من المقالات المخزنة في قاعدة بيانات، ولديك كمية كبيرة من الزوار النشطين لهذه المدونة، فستجد أنه من غير العملي طلب المقالات من قاعدة البيانات كل مرة عند دخول زائر جديد للمدونة لأن ذلك يستهلك زمناً وموارد بالنسبة للسيرفر وبالتالي نقوم بعمل Caching داخل السيرفر لهذه البيانات وتحديثها عند كل فترة، ويمكن أيضا عمل الـ Caching داخل تطبيق المستخدم من خلال تفقد صلاحية هذه البيانات فمثلاً إذا كان المستخدم قد تحصل على المقالات قبل دقيقة واحدة ومن ثم قام بزيارة قسم المقالات مجدداً يفضل للتطبيق الخاص بك إظهار المقالات ذاتها وعدم طلبها مجدداً من السيرفر لأنه من غير المحتمل أن يكون هنالك تغير جديد في المقالات خلال هذه الفترة البسيطة.

أتمنى أن يكون الفرق قد وضح بالنسبة لك.

1 شخص أعجب بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية
  • 1

المقصود بذلك أنه لايتم حفظهم في قواعد البيانات.

أما caching فالمقصود بذلك أن البرنامج يقوم بتذكر أماكن البيانات أو النتائج "المخرجات" التي قام بطلبها ال client فبذلك إذا قام بطلبها مرة أخرى يرسلها له مباشرة دون البحث في قاعدة البيانات أو القيام بالعمليات الحسابية و المنطقية مرة أخرى مما يحسن من أداء الموقع و سرعته.

1 شخص أعجب بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية
  • 0
بتاريخ 2 ساعات قال Mohammed Ahmed13:

وعليكم السلام،

لايوجد تضارب فعلي بين المفهومين، Stateless تعني أنه لن يتم تخزين أي بيانات بخصوص حركة المستخدمين داخل السيرفر لدى كل طلب جديد، أما Cacheable فتعني أنه يجب أن يتم تخزين البيانات التي يتم طلبها بشكل متكرر من أجل تسريع التواصل بين المستخدمين والسيرفر.

كمثال إذا كانت لديك مدونة تحتوي على عدد من المقالات المخزنة في قاعدة بيانات، ولديك كمية كبيرة من الزوار النشطين لهذه المدونة، فستجد أنه من غير العملي طلب المقالات من قاعدة البيانات كل مرة عند دخول زائر جديد للمدونة لأن ذلك يستهلك زمناً وموارد بالنسبة للسيرفر وبالتالي نقوم بعمل Caching داخل السيرفر لهذه البيانات وتحديثها عند كل فترة، ويمكن أيضا عمل الـ Caching داخل تطبيق المستخدم من خلال تفقد صلاحية هذه البيانات فمثلاً إذا كان المستخدم قد تحصل على المقالات قبل دقيقة واحدة ومن ثم قام بزيارة قسم المقالات مجدداً يفضل للتطبيق الخاص بك إظهار المقالات ذاتها وعدم طلبها مجدداً من السيرفر لأنه من غير المحتمل أن يكون هنالك تغير جديد في المقالات خلال هذه الفترة البسيطة.

أتمنى أن يكون الفرق قد وضح بالنسبة لك.

شكرا جزيلا

فهمت المقصود @Mohammed Ahmed13

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن