معرفی وب سرویس WCF، Web API در ASP.Net

جمعه 15 آبان 1394

چه تفاوتی بین وب سرویس ، RESTful ،WCF ،Web API وجود داردسعی داریم ابتدا یک توضیح مختصر راجع به هر کدام ارائه داده و سپس به توضیح دو مفهوم اساسی WCFوWeb API می پردازیم.

معرفی وب سرویس WCF، Web API در ASP.Net

سلام دوستان ، شاید برای شما هم سوالاتی از این دست مطرح می شود و آن این است که چه تفاوتی بین وب سرویس ،  RESTfulوب سرویس ،WCF ،Web API وجود داردسعی داریم ابتدا یک توضیح مختصر راجع به هر کدام ارائه داده و سپس به توضیح دو مفهوم اساسی ASP.NET : WCFوWeb API  می پردازیم.

وب سرویس چیست ؟

وب سرویس function  هایی است که توسط سایر برنامه ها و توسط HTTP در دسترس قرار می گیرد.وقتی شما وب سایتی دارید برنامه شما و صفحاتی که دارد توسط Browser قابل دیدن است اما وب سرویس با این حالت تفاوت دارد به این دلیل که وب سرویس صفحاتی ندارد که شما ببینید بلکه عملکرد ها و متد هایی است که توسط سایر صفحات و برنامه ها قابل دستیابی است

سرویس مجموعه ای از متد هاست که کار خاصی برای ما انجام می دهد. وب سرویس ها، این امکان را فراهم می کنند که سایر برنامه ها از جمله برنامه های تحت دسکتاپ و تحت وب با یک ارتباط روی HTTP به توابع داخل آن ها دسترسی پیدا کنند و نتیجه اش را در قالب فرمت استاندارد XML و سایر فرمت ها دریافت کنند

در واقع می توانید فرض کنید که وب سرویس خود Application ایی است که با سایر Application تعامل دارد.که این تعامل می تواند به صورت دریافت و ارسال دیتا و یا متدی باشد که کار خاصی انجام می دهد و داخل وب سرویس نوشته شده است و از بیرون فراخوانی میشود.

 در صورت تمایل میتوانید به صورت رایگان آموزش WCF به همراه پروژه عملی را در سایت تاپ لرن مشاهده کنید .

انواع وب سرویس

به طور کلی به دو نوع می توان تقسیم کرد 1- REST -2 SOAP

REST یک معماری در طراحی Web API است .و از HTTP برای ارسال و دریافت اطلاعات مابین کلاینت و سرور استفاده می کند.در معماری سنتی وب سرویس ها مثلا شما نام شهر را به متدی از یک سرویس می دادید و در پاسخ مثلا جمعیت و یا درجه رطوبت هوا را می گرفتید ولی در وب سرویس های مبنتی در Rest دیگر متدهایی با این ماهیت نداریم و تنها یک سری متد های کلی داریم به نام های Get ، Put، Delete، Post

بنابراین در این معماری و برای مثال درجه رطوبت که زده شد، شما یک سرویس مثلا به نام Humidity خواهید داشت و کاربر با تایپ آدرس GET http//Humiditycom/4210 HTTP/1.1 از وب سرویس خواهد خواست که رطوبت هوای شهر با کد 4210  را دریافت کند

در REST هر درخواست باید با یک URI مشخص بشه.یعنی اساسا Rest بر مبنای URL کار می کند . منابع و کالکشن های خود را به صورت  http://example.com/resources دریافت می کند.علت وجودی این معماری در این است که به جای استفاده از روش های پیچیده مانند SOAP  و .... برای اتصال بین برنامه ها در جاهای مختلف از پروتکل HTTP استفاده کنیم .

SOAP : یک پروتکل (توجه کنید پروتکل و نه معماری )برای تبادل اطلاعات بین برنامه های وبی است و اصولا فرمت اطلاعات ارسالی و دریافتی در آن XML است .

برای استفاده از وب سرویس ها دو راه پیش رو دارید 1- استفاده از WCF و 2- استفاده از Web API

WCF

در مقاله ای  با عنوان ایجاد و استفاده از وب سرویس WCF در ASP.NET نحوه ایجاد یک WCF شرح داده شده است . 

توسط WCF  و یا  Windows Communication Foundation می توان برنامه ها را سرویس گرا تولید کرد.با کمک WCF می توان سرویس هایی در برنامه تعریف کرد و همچنین ارتباط مناسب بین این سرویس ها برقرار کرد.

Web API

یک توع جدیدتری برای تولید برنامه های سرویس گرا است .در WCF اساس وب سرویس یک اینترفیس است .و تمام اجزای وب سرویس در داخل این اینترفیس تعریف شده است .و بعد باید کلاسی تعریف کرد که این اینترفیس را پیاده سازی کرده باشد.اما در Web API که روشی آسانتر برای ایجاد وب سرویس ها است و مبنای کار آن مانند WCF دستورات اصلی وب و پروتکل HTTP یعنی Get و Post و ... است. بر اساس درخواست کلاینت اطلاعات ارسالی از Web API تفاوت خواهد کرد و اصرار خاصی بر روی xml و یا  json ندارد.

از کدام استفاده کنیم ؟

هر دو اینها یک کار انجام می دهند و آنهم تولید برنامه های سرویس گرا است ولی اگر قصد این را دارید که سرویس شما در پلت فرم های مختلف به کار برده شود از WCF استفاده کنید و اگر قصد دارید سرویسی ایجاد کنید که از منابع خارجی مختلف استفاده کند از Web API استفاده کنید.

برنامه نویسان

نویسنده 3355 مقاله در برنامه نویسان

کاربرانی که از نویسنده این مقاله تشکر کرده اند

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید