سرویس RESTful و REST در WCF
دوشنبه 18 مرداد 1395در این مقاله قصد داریم به اطلاعات و تصورات غلطی که ذهن بیشتر افراد را مشغول کرده بپردازیم و تمام شک و تردید ها را برطرف کنیم و با معماری Rest آشنا شویم.
قبل از این که وارد بحث RESTful شویم به این بپردازیم که REST چیست و چگونه عمل می کند.
REST
کلمه REST مخفف(Reperesentational state transfer) است که برروی پروتکل http اجرا می شود، اما نه همیشه.به این نکته توجه کنید که Rest یک سبک معماری است نه یک ویژگی یا استاندارد.ویژگی خاصی که Rest دارد این است که تنها مخصوص XML نیست.RESTful Service میتواند Plain Text ، Json نیز ارسال کند. REST جایگزین SOAP و WSDL است .
REST از سه روش برای انجام عملیات استفاده می کند به عنوان مثال Insert، Delete ، Update به شرح زیر:
1.Get : برای بازیابی منابع
2.Put : ایجاد یا بروزرسانی جزئیات ارائه شده یک منبع ، رد کردن هر آنچه ک وجود دارد.
3.Delete : حذف منبع خاص
4.Post : ارسال داده های پردازش شده به منبع
در چه مواقعی از Rest Service استفاده می کنیم؟
ما پاسخ این سوال را در چند نکته تقسیم کرده ایم.
1.کوچک (Minimize) کردن Coupling
Coupling نشان دهنده اتصال بین واحدها است و هر چقدر بیشتر باشد وابستگی های برنامه بیشتر می شود.بنابراین همیشه ترجیح می دهیم کمتر از آن استفاده کنیم.از این رو ما میتوانیم وضعیت کد را تغیر بدهیم وتا بر روی کد های دیگر تاثیر نگذارد.عمدتا REST زمانی مناسب خواهد بود که بخواهیم سمت کاربری کد نویسی کنیم. زمانی که میخواهیم Server را به طور منظم بروزرسانی کنیم نیاز به به بروزرسانی Client نداریم.
2.محیط ناهماهنگ
سرور میتواند به Client های ناهماهنگ دسترسی پیدا کند و همچنین سرور میتواند توسط iPhone ، Android ، Windows ، و دیگر سرویس ها فراخوانی شود.
3.ویژگی های Http
زمانی که از Httpاستفاده می کنیم ، ویژگی هایی در اختیار ما قرار می دهد ، یکی از بهترین ویژگی های آن “Caching” است ، که سرعت سرور را افزایش می دهد و بار سرور را کم می کند.
حال میخواهیم یک Restful WCF پیاده سازی کنیم .
مرحله اول: یک پروژه از نوع WCF ایجاد می کنیم.
مرحله دوم : Service Contract و Data Member را ایجاد میکنیم ، مانند تصویر زیر:
1. [ServiceContract] 2. public interface IEmployee 3. { 4. 5. [OperationContract] 6. [WebInvoke(Method = "GET", ResponseFormat = WebMessageFormat.Json)] 7. List<Employee> GetAllEmployee(); 8. } 9. [DataContract] 10. public class Employee 11. { 12. 13. [DataMember] 14. public string EmpID { get; set; } 15. 16. [DataMember] 17. public string Name { get; set; } 18. }
مرحله سوم:کلاس های پشتیبانی را ایجاد می کنیم.
1. public static class EmployeDetails 2. { 3. 4. public static List<Employee> GetAllEmploye() 5. { 6. List<Employee> employeeList = new List<Employee>() 7. { 8. new Employee() {EmpID = "720501" , Name = "Nishant"}, 9. new Employee() {EmpID = "720520" , Name = "Arjun"}, 10. new Employee() {EmpID = "887766" , Name = "Prashant"} 11. }; 12. 13. return employeeList; 14. } 15. 16. }
مرحله چهارم:پیاده سازی رابط به شرح زیر:
1. public class EmployeeService : IEmployee 2. { 3. public List<Employee> GetAllEmployee() 4. { 5. List<Employee> employeeList=EmployeDetails.GetAllEmploye(); 6. return employeeList; 7. } }
حال سرویس به خوبی کار می کند.
به تصویر زیر توجه کنید:
در صورت تمایل میتوانید به صورت رایگان آموزش WCF به همراه پروژه عملی را در سایت تاپ لرن مشاهده کنید .
- WCF
- 3k بازدید
- 5 تشکر