سرویس RESTful و REST در WCF

در این مقاله قصد داریم به اطلاعات و تصورات غلطی که ذهن بیشتر افراد را مشغول کرده بپردازیم و تمام شک و تردید ها را برطرف کنیم و با معماری Rest آشنا شویم.

سرویس RESTful و REST در WCF

قبل از این که وارد بحث 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.	        }  
    }  

حال سرویس به خوبی کار می کند.

به تصویر زیر توجه کنید:

 

دانلود فایل های ضمیمه مخصوص اعضای سایت می باشد !
کاربر مهمان! جهت دانلود و استفاده از امکانات سایت لطفا وارد سایت شوید و یا ثبت نام کنید
دانلود نسخه ی PDF این مطلب