技术开发 频道

Silverlight RestWCF系列之:简单的Rest

    【IT168 技术】REST定义了应该如何正确地使用(这和大多数人的实际使用方式有很大不同)Web标准,例如HTTP和URI。如果你在设计应用程序时能坚持REST原则,那就预示着你将会得到一个使用了优质Web架构(这将让你受益)的系统。下面就让我们来详细了解一下:

       1:新建WCF服务应用程序,名称为RestWCF,选择在新网站中承载.

  2:新建实体类Product,代码如下:

    [DataContract]

  
public class Product

  {

  [DataMember]

  
public Guid Id { get; set; }

  [DataMember]

  
public String Name { get; set; }

  }

  3:新建服务契约IProductService:

       [ServiceContract]

  
public interface IProductService

  {

  [OperationContract]

  [WebGet(UriTemplate
="Product")]

  List GetProducts();

  [OperationContract]

  [WebInvoke(UriTemplate
="Product",Method="PUT")]

  bool CreateProduct(Product product);

  [OperationContract]

  [WebInvoke(UriTemplate
= "Product", Method = "POST")]

  bool UpdateProduct(Product product);

  [OperationContract]

  [WebInvoke(UriTemplate
= "Product", Method = "DELETE")]

  bool DeleteProduct(Product product);

  }

  注意的是这里都是一些CRUD操作,但是除了OperationContract修饰外,还有WebGet,WebInvoke特性来修饰。

  UriTemplate就是Uri模版的意思,如果web地址为http://www.rest.com.那么rest服务的地址就是http://www.rest.com/Product.

  OK.上面的契约大致表示:

  GET-----GetProducts方法。

  PUT-----CreateProduct.

  POST----UpdateProduct

  DELETE---DeleteProduct。

  4:新建服务类:ProductService,实现服务接口,代码如下:

       public class ProductService:IProductService

  {

  
public List GetProducts()

  {

  return
new List()

  {

  
new Product(){ Id=Guid.NewGuid(), Name="111"},

  
new Product(){ Id=Guid.NewGuid(), Name="222"},

  
new Product(){ Id=Guid.NewGuid(), Name="333"},

  };

  }

  
public bool CreateProduct(Product product)

  {

  return
true;

  }

  
public bool UpdateProduct(Product product)

  {

  return
true;

  }

  
public bool DeleteProduct(Product product)

  {

  return
true;

  }

  }

  当然了,实际上肯定是数据库操作,在这里我们就先Mock一下吧。

0
相关文章