ماهو الفرق بين API و REST API وماهي وظفتهما - angular

ماهو الـ API ؟

الـ API  هو اختصار Application Programming Interface  الـ API ببساطة هى عبارة عن وسيط  يقدم خدمة لبرنامج معين فيقوم  برنامجك  مثلا بالتواصل مع هذا الوسيط لكي يترجم له مجموعة من الامور يحتاج برنامجك اليها  حتى  يفهمها 
الـ API اليوم لايمكن الاستغناء عنها ابدا فلايكاد موقع  تدخله الا وتجده يستخدم API مثلا عندما تجد موقع ما يدعم خاصية التسجيل عبر facebook فبتسجيلك عن طريق فيسبوك يتطلب api خاصة بالفيسبوك تمر عليها وهذا الوسيط api يقوم بالرد  للسرفر ادا كانت البيانات صحيحة ام لا.....ايضا خرائط google maps التي تجدها بالمواقع هي تستخدم api خاصة بسرفرات google ..حيث تسمح لصاحب الموقع بعرض جزء معين من الخريطة بموقعه دون الذهاب الى موقع google maps ...ايضا احوال الطقس واسعار  ومنحنيات البورصات التي تراها بالمواقع هده البيانات كلها يتم جلبها من الـ api  

ماهو الـ Rest API ؟

اختصاراً لـ Representational state transfer  هو نوع من أنواع الـ API حيث يقوم  هدا النوع بنقل البيانات  بين العميل والخادم  "Server و Client" عن طريق البرتكول HTTP فجميع العمليات تتم من خلال هذا البرتكول  وعندما نقول عمليات فنحن نقصد العمليات الشائعة بعالم البرمجة وهي CREATE  READ UPDATE DELETE  اختصارا لكلمة CRUD
عندما نقول أن REST PAI يقوم باستخدام البرتكول HTTP فهدا يعني باختصار شديد بدون تعقيدانك تقوم بارسال الأوامر عبر  رابط أو مسار عبر نمط معين سواء كان GET POST PUT DELETE PATH وغير ذلك
أول شيء علينا ان نفهم  طريقة عمل الـ api بغض النظر على برمجتها , فتقريبا جميع الـ apis  الخاصة بالويب بالعالم تتفق على مجموعة من الأبجديات ومنها أنها تدعم لغة json أي انها تتبادل البيانات عن طريق لغة json . أيضا عليك ان تفهم كيفية عمل  نظام CRUD في API أو مايسمى اختصارا لـ CREATE READ UPDATE DELET 
يملك البرتكول HTTP  مجموعة من التعليمات methods تترجم من خلالها نوع الطلب المرسل من client الى server    حيث سيفهم الـ API من خلال مسار رابط http  +نوع الـ method  سيفهم ماذا تريده بالضبط ويقوم بمعالجة طلبك وتتلخص تعليمات البرتكول http في التالي
  • GET تستخدم لجلب البيانات من السيرفر  (قراءة البيانات READ)
  • POST لإضافة بيانات  (انشاء محتوى CREATE)
  • PUT لتعديل بيانات موجودة بالفعل  (التعديل UPDATE)
  • DELETE لحذف بيانات موجودة بالسرفر  (الحذف DELETE)

فالـ API بشكله الافتراضي عندما يستقل مثلا تعليمة عن طريق POST سيفهم انك تقصد CREATE اي انك تريد اضافة بيانات..وعندما يستقبل تعليمة بنمط GET سيفهم انك تريد جلب وقراءة بيانات READ
أيضا عندما يستقبل تعليمة بنمط PUT سيفهم أنك تريد التعديل على بيانات شيء ما موجود سابقا بقاعدة البيانات وعندما يستقبل بيانات

أهم النقاط التي تعتمد عليها  الـ Rest API

  • يتم استخدام ال method المناسب لكل عملية طلب من طرف العميلClient , فاذا اردت عرض معلومات يجب استخادم GET أما اذا كنت تريد التعديل استخدم PUT , ادا تريد الانشاء استخدم POST .
  • يتم ارسال البيانات من العميل Client الى  الخادم Server سواء كانت عن طريق Parameters في الرابط أو عن طريق Body , واذا اردت ارسال اي معلومات اخرى مثل مواثيق التحقق Authentication فيتم ارسالها عن طريق الـ Header.
  •  في الـ REST API  لاحاجة لحفظ البيانات في Session وذلك لان جميع الطلبات يجب ان تكون State less بمعنى انها لاتحفظ اي بيانات او اي حالة في السيرفر والتواصل يكون مباشرة بين العميل والخادم عن طريق البرتوكول بشكل مباشر .

نقاط القوة الخاصة بالـ REST API

  • فصل تام بين الـ Client و Server بحيث ان الـ Client لايستطيع ان يقوم بالتعديل او الاضافة أكود السيرفر.
  • امكانية تشغيل التطبيق على عدة اجهزة  Cross-device app   بحيث قد يكون صفحة ويب او تطبيق موبايل او برنامج سطح مكتبي او اي تطبيق على أي منصة يمكنه التعامل وارسال طلبات HTTP.
  • سرعة تبادل البيانات بين العميل والخادم Client/Server بحكم اعتمادها على برتوكول HTTP.

العيوب

  • نظام الحماية يحتاج الى مراقبة وتحقق من طرف المطور

الدروس السابقة :

  1. المستوى الثاني من Angular 
  2. انشاء واختيار api مع قاعدة البيانات mysql - Angular 
  3. انشاء وتمهيد مشروع الدورة angular 
  4. دمج bootstrap & jquery داخل مشروع angular 
  5. انشاء الصفحة الرئيسية للتطبيق angular

تعليقات

  1. According to Stanford Medical, It is in fact the ONLY reason this country's women live 10 years longer and weigh on average 19 kilos less than us.

    (And actually, it has absolutely NOTHING to do with genetics or some secret exercise and EVERYTHING related to "how" they are eating.)

    BTW, I said "HOW", and not "WHAT"...

    TAP this link to determine if this little quiz can help you discover your true weight loss possibilities

    ردحذف
  2. الله يوفقك اخوي على المعلومات يا ليت تزيدنا اشكرك على هذا المقال الجميل

    ردحذف

إرسال تعليق