温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

怎么应用WCF中的REST

发布时间:2021-12-15 09:30:45 来源:亿速云 阅读:168 作者:iii 栏目:编程语言

本篇内容主要讲解“怎么应用WCF中的REST”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么应用WCF中的REST”吧!

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<Product> 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<Product> GetProducts()  {  return new List<Product>()  {  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一下吧。

5:新建ProductService.svc文件,代码如下:

<%@ ServiceHost Language="C#" Debug="true" Service="RestWCF.ProductService" %>

这里有一点要注意。Service对应的是包含类的全部名称=命名空间+类名.

6:配置web.config文件。

<system.serviceModel> <services> <service name="RestWCF.ProductService"> <endpoint address="" behaviorConfiguration="RestBehavior" binding="webHttpBinding" bindingConfiguration="" contract="RestWCF.IProductService" /> </service> </services> <behaviors> <endpointBehaviors> <behavior name="RestBehavior"> <webHttp helpEnabled="true" defaultBodyStyle="Bare" defaultOutgoingResponseFormat="Json" /> </behavior> </endpointBehaviors> <serviceBehaviors> <behavior name=""> <serviceMetadata httpGetEnabled="true" /> <serviceDebug includeExceptionDetailInFaults="false" /> </behavior> </serviceBehaviors> </behaviors> <serviceHostingEnvironment multipleSiteBindingsEnabled="true" /> </system.serviceModel>

在这里因为要配置Rest服务,所以我们添加webHttp Behavior,并且启用helpEnabled.在这里我们设置defaultBodyStyle="Bare"代表不包装。

defaultOutgoingResonseFormat="Json",则代表默认输出的格式是json,如果不设置的话,默认是xml。

7:在浏览器中浏览,因为我们启用了HelpEnabled.所以我们输入的地址是:

怎么应用WCF中的REST

8:OK,服务我们已经配置完成了,我们还是测试下吧,打开fiddler.

怎么应用WCF中的REST

结果如下:

怎么应用WCF中的REST

在这里我们提交下POST请求。

怎么应用WCF中的REST

下回我们将使用Silverlight来调用Get,Post,Put,Delete的Rest服务。

oh,我忘记了,这些全部是大写,所以你***记住GET,POST,PUT,DELETE.

到此,相信大家对“怎么应用WCF中的REST”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI