الفرق بين Web services و API

من المفاهيم الي دائما يصير خلط بينها هما web services و API خصوصا عند الاشخاص المختصين بتطوير تطبيقات الويب ، لذلك بهذا البوست نحاول نلخص مفهوم كل واحد ، والفرق بينهما .
اولا – API عبارة عن مكون برمجي وظيفته يساعد تطبيقين او اكثر حتى يتبادلون البيانات وفق شروط معينة .
طبعا هناك العديد من API بعضها مفتوح ويقدر اي شخص يستخدمها ، وبعض مدفوع وهذا يعطيك بيانات معينة، والبعض يكون خاص بمؤسسة معينة لا يستطيع اي شخص استخدامه من خارج المؤسسة .
أبرز أمثلة على API هناك نوع مجاني يعطيك درجات الحرارة والبعض الاخر نتائج مباريات كرة القدم .. الخ .
اما أبرز المعماريات البرمجية الي يعتمد عليها فهي اما REST (هذا النوع راح نشرحه بمسار Fullstack ) ومعمارية ثانية اسمها SOAP .
كذلك API يشتغل على البروتوكول HTTP .
اما بالنسبة لعيوب API فهو يحتاج جهد كبير لبناءه ، صيانته وتطوير كذلك .
ثانيا – الويب سيرفس فهذي من اسمها نقصد بيها خدمة والخدمة هنا تعني برنامج (دالة او جزء من الكود) او خدمة من خدمات الكلاود الي تشتغل على الشبكة او الإنترنت، ومن خلالها يتم الاتصال و تبادل البيانات بين الانظمة و التطبيقات.
بمعنى ثاني خدمة للتواصل بين الانظمة او التطبيقات المختلفة ، بحيث تطبيق ما او نظام ما يطلب خدمة معينة من مزود الخدمة ويبعث له المعلومات المطلوبة فالمزود يستلم المعلومات ويطبق عليه الخدمة المطلوبة ويرسل النتائج بشكل XML للتطبيق وهكذا .
يعني على سبيل المثال لو احتاجيت تضيف جزء بتطبيقك خاص بالدفع الالكتروني ، فهنا اما تبني نظام دفع وهذا يحتاج جهد ووقت ، او تستفاد من خدمة دفع مالي توفرها بعض الشركات عبر الإنترنت مثلا Paypal (ويب سيرفس)
ممكن نعتبر API عبارة عن خدمة ويب ، لكن ليس كل خدمة نعتبرها API