您好,登錄后才能下訂單哦!
本篇內(nèi)容主要講解“怎么應(yīng)用WCF中的REST”,感興趣的朋友不妨來看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“怎么應(yīng)用WCF中的REST”吧!
1:新建WCF服務(wù)應(yīng)用程序,名稱為RestWCF,選擇在新網(wǎng)站中承載.
2:新建實(shí)體類Product,代碼如下:
[DataContract] public class Product { [DataMember] public Guid Id { get; set; } [DataMember] public String Name { get; set; } }
3:新建服務(wù)契約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服務(wù)的地址就是http://www.rest.com/Product.
OK.上面的契約大致表示
GET-----GetProducts方法。
PUT-----CreateProduct.
POST----UpdateProduct
DELETE---DeleteProduct。
4:新建服務(wù)類:ProductService,實(shí)現(xiàn)服務(wù)接口,代碼如下:
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; } }
當(dāng)然了,實(shí)際上肯定是數(shù)據(jù)庫(kù)操作,在這里我們就先Mock一下吧。
5:新建ProductService.svc文件,代碼如下:
<%@ ServiceHost Language="C#" Debug="true" Service="RestWCF.ProductService" %>
這里有一點(diǎn)要注意。Service對(duì)應(yīng)的是包含類的全部名稱=命名空間+類名.
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>
在這里因?yàn)橐渲肦est服務(wù),所以我們添加webHttp Behavior,并且啟用helpEnabled.在這里我們?cè)O(shè)置defaultBodyStyle="Bare"代表不包裝。
defaultOutgoingResonseFormat="Json",則代表默認(rèn)輸出的格式是json,如果不設(shè)置的話,默認(rèn)是xml。
7:在瀏覽器中瀏覽,因?yàn)槲覀儐⒂昧薍elpEnabled.所以我們輸入的地址是:
8:OK,服務(wù)我們已經(jīng)配置完成了,我們還是測(cè)試下吧,打開fiddler.
結(jié)果如下:
在這里我們提交下POST請(qǐng)求。
下回我們將使用Silverlight來調(diào)用Get,Post,Put,Delete的Rest服務(wù)。
oh,我忘記了,這些全部是大寫,所以你***記住GET,POST,PUT,DELETE.
到此,相信大家對(duì)“怎么應(yīng)用WCF中的REST”有了更深的了解,不妨來實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。