معرفی وب سرویس WCF، Web API در ASP.Net
جمعه 15 آبان 1394چه تفاوتی بین وب سرویس ، RESTful ،WCF ،Web API وجود داردسعی داریم ابتدا یک توضیح مختصر راجع به هر کدام ارائه داده و سپس به توضیح دو مفهوم اساسی WCFوWeb API می پردازیم.
سلام دوستان ، شاید برای شما هم سوالاتی از این دست مطرح می شود و آن این است که چه تفاوتی بین وب سرویس ، 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 استفاده کنید.
- ASP.net
- 6k بازدید
- 7 تشکر