وب سرویس و API(Application Programming Interface)، هر دو به عنوان ابزار ارتباطی عمل میکنند. تنها تفاوت این دو در این است که: یک وب سرویس، تعامل بین دو ماشین را در یک شبکه تسهیل میکند؛ ولی یک API به عنوان رابط بین دو اپلیکیشن مختلف عمل میکند تا بتوانند با یکدیگر ارتباط برقرار کنند.
یک API روشی است که برای وندورهای ثالث که بتوانند برنامه هایی بنویسند که به راحتی با سایر برنامه ها ارتباط برقرار کنند. یک وب سرویس به نحوی طراحی شده است تا دارای یک رابط با فرمت قابل پردازش ماشین باشد که معمولا به "زبان توصیفی وب سرویس (WSDL)" مشخص میشود. معمولا، "HTTP" پروتکل متداول برای ارتباط است. وب سرویس از SOAP، REST و XML-RPC نیز به عنوان وسیله ارتباطی بهره میبرد. API قادر است از هر وسیله ارتباطی برای ایجاد تعامل میان اپلیکیشنها استفاده کند.
یک API روشهایی دقیق برای تعامل یک برنامه نرمافزاری با سایر برنامهها مشخص میکند. زمانی که این تعامل میان برنامهها شامل ارسال اطلاعات بر روی یک شبکه باشد، وب سرویس وارد صحنه میشود. یک API عموما شامل فراخوانی توابع از یک برنامه نرمافزاری است.
در مورد برنامه های وب، API مورداستفاده مبتنی بر وب است. اپلیکیشنهای دسکتاپ مانند صفحات گسترده و اسناد Word از VBA و API های مبتنی بر COM که شامل سرویس وب نیستند، بهره میبرند. یک اپلیکیشن سمت سرور مانند جوملا ممکن است از یک API مبتنی بر PHP در سرور استفاده کند که نیازی به وب سرویس ندارد.
وب سرویس صرفا یک API است که درون HTTP پیچیده شده است. همیشه نیازی نیست که یک API مبتنی بر وب باشد. یک API شامل مجموعه کاملی از قوانین و مشخصات است که یک برنامه نرمافزاری به منظور تسهیل تعامل، آنها را دنبال میکند. در حالی که یک وب سرویس ممکن است شامل مجموعه ای کامل از مشخصات نباشد و گاه احتمال دارد قادر به انجام تمام وظایفی که از یک API کامل برمیآید، نباشد.
به روش های مختلفی API ها می توانند مورد استفاده قرار گیرند، شامل: اشیا COM و DLL , فایلهای H. در زبان برنامه نویسی C++ / C، فایل های JAR یا RMI در جاوا، XML روی HTTP، JSON روی HTTP و غیره. روش استفاده شده توسط وب سرویس برای استفاده از API حتما از طریق یک شبکه است.
خلاصه
1. تمام وب سرویسها، API ها هستند، اما تمام APIها وب سرویس نیستند.
2. وب سرویس ممکن است تمام قابلیتهای API را دارا نباشد.
3. وب سرویس فقط از سه شیوه برای ارتباطات استفاده میکند: SOAP، REST و XML-RPC در حالی که API میتواند از هر شیوهای برای ارتباط بهره ببرد.
4. وب سرویس برای عملیات خود همیشه نیاز به یک شبکه دارد، در حالی که API نیازی به آن ندارد.
5. یک API ارتباط مستقیم با یک برنامه را تسهیل میکند، در حالی که یک وب سرویس از طریق شبکه با دو ماشین تعامل دارد.
6. وب سرویس، مانند Url های پیشرفته است ولی API رابط برنامهریزی شده است.
7. درست مانند یک برنامه، API شامل کلاس و اینترفیسهایی است.
8. وب سرویس شکلی از API است.
9. یک API توسط برنامهنویس برای ایجاد ارتباط میان اپلیکیشنهای نرمافزاری استفاده میشود. این رابط میتواند چندین شکل و صورت داشته باشد، وب سرویس فقط یکی از این موارد است.
10. وب سرویس انواع مختلفی دارد: SOAP (Simple Object Access Protocol) یکی از رایجترین آنهاست. API شکلی از توصیف سرویس (WSDL) را دریافت میکند که برای تولید خودکار کد برنامهای که اتصال را ایجاد مینماید، به کار میرود.