MDN Web Docs - Fetch API

From binaryoption
Jump to navigation Jump to search
Баннер1
    1. MDN Web Docs - Fetch API: دليل شامل للمبتدئين

مقدمة

تُعد واجهة برمجة التطبيقات (API) Fetch أداة قوية ومرنة لإجراء طلبات الشبكة من خلال JavaScript. تُستخدم Fetch لجلب الموارد (مثل ملفات HTML، ملفات JSON، الصور، إلخ) من الخادم، وإرسال البيانات إلى الخادم، والتعامل مع الاستجابات بشكل فعال. تعتبر Fetch بديلاً حديثًا ومحسّنًا لـ `XMLHttpRequest` (XHR) التقليدي. تتميز Fetch بواجهة برمجة تطبيقات (API) أكثر سهولة في الاستخدام، وتعتمد على الوعود (Promises) للتعامل مع العمليات غير المتزامنة، مما يجعل الكود الخاص بك أكثر قابلية للقراءة والصيانة. هذا المقال مخصص للمبتدئين ويهدف إلى تقديم شرح مفصل لـ Fetch API بناءً على وثائق MDN Web Docs، مع التركيز على التطبيقات العملية في سياق تطوير الويب.

لماذا Fetch API؟

قبل الغوص في التفاصيل، دعنا نلقي نظرة سريعة على الأسباب التي تجعل Fetch API الخيار المفضل للمطورين:

  • واجهة برمجة تطبيقات أبسط وأكثر سهولة في الاستخدام: Fetch توفر واجهة برمجة تطبيقات (API) أكثر وضوحًا وبساطة مقارنة بـ XHR.
  • الاعتماد على الوعود (Promises): تبسّط الوعود التعامل مع العمليات غير المتزامنة، مما يجعل الكود أكثر قابلية للقراءة والتنظيم. الوعود تساعد في تجنب مشاكل "جحيم ردود النداء" (callback hell) التي غالبًا ما تحدث مع XHR.
  • أكثر مرونة: Fetch توفر تحكمًا أكبر في عملية الطلب، بما في ذلك القدرة على تخصيص الرؤوس (headers)، وطريقة الطلب (method)، ونوع المحتوى (content type).
  • دعم CORS: تتعامل Fetch مع مشاركة الموارد عبر المصادر (CORS) بشكل أكثر فعالية. CORS ضروري لعمليات طلب البيانات بين نطاقات مختلفة.
  • أداء أفضل: في بعض الحالات، يمكن أن توفر Fetch أداءً أفضل من XHR، خاصة عند التعامل مع الطلبات الكبيرة.

المفاهيم الأساسية

  • الطلبات (Requests): الطلبات هي الرسائل التي يتم إرسالها إلى الخادم لطلب مورد معين. تتضمن الطلبات معلومات مثل عنوان URL، وطريقة الطلب (GET, POST, PUT, DELETE, إلخ)، والرؤوس (headers)، وجسم الطلب (body) (إذا كان الطلب يتضمن بيانات).
  • الاستجابات (Responses): الاستجابات هي الرسائل التي يتم إرسالها من الخادم إلى العميل استجابةً للطلب. تتضمن الاستجابات معلومات مثل حالة الاستجابة (status code)، والرؤوس (headers)، وجسم الاستجابة (body) (الذي يحتوي على المورد المطلوب).
  • الوعود (Promises): الوعود هي كائنات تمثل نتيجة عملية غير متزامنة. يمكن أن تكون الوعود في إحدى ثلاث حالات: *معلقة* (pending)، *محققة* (fulfilled)، أو *مرفوضة* (rejected). تُستخدم الوعود للتعامل مع نتائج طلبات Fetch بشكل فعال.
  • async/await: `async/await` هي طريقة أكثر حداثة لكتابة الكود غير المتزامن باستخدام الوعود. تسمح لك `async/await` بكتابة الكود غير المتزامن بطريقة تشبه الكود المتزامن، مما يجعل الكود أكثر قابلية للقراءة والصيانة. async/await هي إضافة قوية إلى JavaScript تسهل التعامل مع العمليات غير المتزامنة.

استخدام Fetch API

الآن، دعنا نلقي نظرة على كيفية استخدام Fetch API في JavaScript.

1. طلب بسيط (GET Request)

أبسط طريقة لاستخدام Fetch هي إجراء طلب GET بسيط لجلب مورد من الخادم:

```javascript fetch('https://example.com/data.json')

 .then(response => {
   if (!response.ok) {
     throw new Error('Network response was not ok ' + response.status);
   }
   return response.json(); // أو response.text() إذا كان المورد نصًا
 })
 .then(data => {
   console.log(data); // معالجة البيانات المسترجعة
 })
 .catch(error => {
   console.error('There has been a problem with your fetch operation:', error);
 });

```

في هذا المثال:

  • `fetch('https://example.com/data.json')` يبدأ طلب GET إلى عنوان URL المحدد.
  • `.then(response => ...)` يتم استدعاؤه عندما يتم تلقي الاستجابة من الخادم. نتحقق من حالة الاستجابة (`response.ok`) للتأكد من أنها ناجحة (رمز الحالة 200-299). إذا لم تكن الاستجابة ناجحة، فإننا نلقي خطأً.
  • `response.json()` يحول جسم الاستجابة إلى كائن JavaScript JSON. إذا كان المورد نصًا، يمكنك استخدام `response.text()` بدلاً من ذلك.
  • `.then(data => ...)` يتم استدعاؤه عندما يتم تحويل البيانات بنجاح. نقوم بمعالجة البيانات المسترجعة هنا.
  • `.catch(error => ...)` يتم استدعاؤه إذا حدث أي خطأ أثناء عملية الطلب أو التحويل. نسجل الخطأ في وحدة التحكم.

2. طلب POST

لإرسال البيانات إلى الخادم، يمكنك استخدام طلب POST:

```javascript fetch('https://example.com/api/submit', {

 method: 'POST',
 headers: {
   'Content-Type': 'application/json'
 },
 body: JSON.stringify({
   name: 'John Doe',
   email: 'john.doe@example.com'
 })

})

 .then(response => {
   if (!response.ok) {
     throw new Error('Network response was not ok ' + response.status);
   }
   return response.json();
 })
 .then(data => {
   console.log(data); // معالجة الاستجابة من الخادم
 })
 .catch(error => {
   console.error('There has been a problem with your fetch operation:', error);
 });

```

في هذا المثال:

  • نقوم بتمرير كائن خيارات إلى `fetch()` لتحديد طريقة الطلب (`method: 'POST'`)، والرؤوس (`headers`)، وجسم الطلب (`body`).
  • `'Content-Type': 'application/json'` يحدد أننا نرسل بيانات JSON.
  • `JSON.stringify(...)` يحول كائن JavaScript إلى سلسلة JSON.

3. استخدام async/await

يمكنك استخدام `async/await` لتبسيط الكود الخاص بك:

```javascript async function fetchData() {

 try {
   const response = await fetch('https://example.com/data.json');
   if (!response.ok) {
     throw new Error('Network response was not ok ' + response.status);
   }
   const data = await response.json();
   console.log(data);
 } catch (error) {
   console.error('There has been a problem with your fetch operation:', error);
 }

}

fetchData(); ```

في هذا المثال:

  • نحدد دالة `async` تسمى `fetchData()`.
  • نستخدم `await` لانتظار اكتمال كل عملية غير متزامنة (مثل `fetch()` و `response.json()`).
  • نستخدم `try...catch` للتعامل مع أي أخطاء قد تحدث.

خيارات Fetch API

يوفر Fetch API العديد من الخيارات لتخصيص طلباتك:

  • `method`: يحدد طريقة الطلب (GET, POST, PUT, DELETE, إلخ).
  • `headers`: يسمح لك بتعيين رؤوس HTTP المخصصة.
  • `body`: يحدد جسم الطلب (البيانات التي يتم إرسالها إلى الخادم).
  • `mode`: يحدد وضع CORS (cors، no-cors، same-origin).
  • `credentials`: يحدد ما إذا كان يجب إرسال بيانات الاعتماد (مثل ملفات تعريف الارتباط) مع الطلب.
  • `cache`: يحدد سلوك التخزين المؤقت (default، no-store، reload، no-cache، force-cache، only-if-cached).
  • `redirect`: يحدد كيفية التعامل مع عمليات إعادة التوجيه (follow، error، manual).

التعامل مع الأخطاء

من المهم التعامل مع الأخطاء بشكل صحيح عند استخدام Fetch API. يمكن أن تحدث الأخطاء لأسباب مختلفة، مثل:

  • أخطاء الشبكة: لا يمكن الوصول إلى الخادم أو هناك مشكلة في الاتصال بالشبكة.
  • أخطاء الخادم: أرجع الخادم رمز حالة خطأ (مثل 500 Internal Server Error).
  • أخطاء JSON: لا يمكن تحليل جسم الاستجابة كـ JSON.

لتجنب هذه المشاكل، استخدم دائمًا `try...catch` أو `.catch()` للتعامل مع الأخطاء.

استراتيجيات الخيارات الثنائية و Fetch API

يمكن استخدام Fetch API في استراتيجيات الخيارات الثنائية لجلب بيانات السوق في الوقت الفعلي، مثل أسعار الأسهم، ومؤشرات الأسهم، والبيانات التاريخية. هذا يسمح لك ببناء تطبيقات تداول آلية أو أدوات تحليل فني. فيما يلي بعض الأمثلة:

  • استراتيجية المتوسط المتحرك (Moving Average): يمكن استخدام Fetch API لجلب بيانات الأسعار التاريخية لحساب المتوسط المتحرك. استراتيجية المتوسط المتحرك هي استراتيجية تداول شائعة تعتمد على تحليل الاتجاهات.
  • استراتيجية مؤشر القوة النسبية (RSI): يمكن استخدام Fetch API لجلب بيانات الأسعار لحساب مؤشر القوة النسبية. استراتيجية مؤشر القوة النسبية هي أداة تحليل فني تستخدم لتحديد ظروف ذروة الشراء والبيع.
  • استراتيجية اختراق النطاق (Breakout): يمكن استخدام Fetch API لمراقبة أسعار الأسهم وتحديد اختراقات النطاق. استراتيجية اختراق النطاق هي استراتيجية تداول تعتمد على توقع حركة الأسعار بعد اختراق مستوى دعم أو مقاومة.
  • استراتيجية بولينجر باند (Bollinger Bands): يمكن استخدام Fetch API لجلب بيانات الأسعار وحساب نطاقات بولينجر. استراتيجية بولينجر باند هي أداة تحليل فني تستخدم لتقييم تقلبات الأسعار.
  • تحليل حجم التداول (Volume Analysis): يمكن استخدام Fetch API لجلب بيانات حجم التداول لتقييم قوة الاتجاهات. تحليل حجم التداول يوفر رؤى قيمة حول سلوك السوق.
  • استراتيجية التداول بناءً على الأخبار (News-Based Trading): يمكن استخدام Fetch API لجلب الأخبار المالية وتحليل تأثيرها على أسعار الأصول.
  • استراتيجية التداول الخوارزمي (Algorithmic Trading): يمكن دمج Fetch API مع خوارزميات التداول لتنفيذ الصفقات تلقائيًا بناءً على شروط محددة مسبقًا.
  • استراتيجية التداول المتأرجح (Swing Trading): تستخدم Fetch API لجلب بيانات الأسعار لتحديد فرص التداول المتأرجحة.
  • استراتيجية التداول اليومي (Day Trading): تستخدم Fetch API لجلب بيانات الأسعار في الوقت الفعلي لتحديد فرص التداول اليومي.
  • استراتيجية التداول على المدى الطويل (Long-Term Trading): تستخدم Fetch API لجلب البيانات التاريخية لتحديد الاتجاهات طويلة الأجل.
  • تداول الاتجاه (Trend Following): Fetch API تساعد في جلب البيانات اللازمة لتحديد اتجاه السوق.
  • تداول العودة إلى المتوسط (Mean Reversion): Fetch API تستخدم لجلب البيانات اللازمة لتحديد الانحرافات عن المتوسط.
  • التحليل الفني باستخدام مؤشرات MACD و Stochastic Oscillator: Fetch API تستخدم لجلب بيانات الأسعار لحساب هذه المؤشرات.
  • استراتيجيات إدارة المخاطر: Fetch API تساعد في جلب بيانات السوق لتقييم المخاطر وتعديل حجم الصفقات.
  • تداول الخيارات الثنائية باستخدام أنماط الشموع اليابانية (Candlestick Patterns): Fetch API تستخدم لجلب بيانات الأسعار لتحديد أنماط الشموع اليابانية.
  • تحليل الفجوات السعرية (Price Gaps): Fetch API تستخدم لجلب بيانات الأسعار لتحديد الفجوات السعرية.
  • استخدام مؤشر فيبوناتشي (Fibonacci Retracements): Fetch API تستخدم لجلب بيانات الأسعار لتحديد مستويات فيبوناتشي.
  • تداول الخيارات الثنائية باستخدام التحليل الأساسي (Fundamental Analysis): Fetch API يمكن استخدامها لجلب البيانات الاقتصادية والمالية.
  • تداول الخيارات الثنائية بناءً على التنبؤات (Forecasting): Fetch API تستخدم لجلب البيانات اللازمة لبناء نماذج التنبؤ.
  • تداول الخيارات الثنائية باستخدام تقنيات التعلم الآلي (Machine Learning): Fetch API تستخدم لجلب بيانات السوق لتدريب نماذج التعلم الآلي.
  • تداول الخيارات الثنائية باستخدام البيانات البديلة (Alternative Data): Fetch API يمكن استخدامها لجلب البيانات غير التقليدية التي قد تؤثر على أسعار الأصول.
  • تداول الخيارات الثنائية باستخدام بيانات وسائل التواصل الاجتماعي (Social Media Data): Fetch API يمكن استخدامها لجلب البيانات من وسائل التواصل الاجتماعي لتحليل معنويات السوق.
  • تداول الخيارات الثنائية باستخدام بيانات محركات البحث (Search Engine Data): Fetch API يمكن استخدامها لجلب البيانات من محركات البحث لتحليل اهتمامات المستثمرين.
  • تداول الخيارات الثنائية باستخدام بيانات الخرائط الحرارية (Heatmaps): Fetch API يمكن استخدامها لجلب البيانات اللازمة لإنشاء الخرائط الحرارية.

الخلاصة

Fetch API هي أداة قوية ومرنة لإجراء طلبات الشبكة من خلال JavaScript. تتميز بواجهة برمجة تطبيقات (API) سهلة الاستخدام، وتعتمد على الوعود (Promises) للتعامل مع العمليات غير المتزامنة. من خلال فهم المفاهيم الأساسية والخيارات المتاحة، يمكنك استخدام Fetch API لبناء تطبيقات ويب حديثة وفعالة، بما في ذلك تطبيقات التداول الآلي وأدوات التحليل الفني في سياق الخيارات الثنائية. تذكر دائمًا التعامل مع الأخطاء بشكل صحيح لضمان موثوقية تطبيقاتك.

JavaScript HTML CSS DOM XMLHttpRequest Promises async/await CORS HTTP JSON

ابدأ التداول الآن

سجّل في IQ Option (الحد الأدنى للإيداع 10 دولار) افتح حساباً في Pocket Option (الحد الأدنى للإيداع 5 دولار)

انضم إلى مجتمعنا

اشترك في قناة Telegram الخاصة بنا @strategybin لتصلك: ✓ إشارات تداول يومية ✓ تحليلات استراتيجية حصرية ✓ تنبيهات اتجاهات السوق ✓ مواد تعليمية للمبتدئين

Баннер