اذهب إلى المحتوى

السؤال

نشر

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

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


2 -  Cacheable

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

 

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

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

 

Recommended Posts

  • 1
نشر

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

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

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

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

  • 0
نشر
بتاريخ 2 ساعات قال Mohammed Ahmed13:

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

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

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

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

شكرا جزيلا

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

  • 1
نشر

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

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

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...