成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

WCF Web API輕松實(shí)現(xiàn)REST

開發(fā) 前端
WCF Web API 是 “First-class programming model for HTTP in WCF”,而 HTTP 是 Web 世界的通行證,Web API 可以讓我們更輕松地暢游于 Web 編程世界。

先體驗(yàn)一下,如果沒(méi)有 WCF Web API,直接用 WCF 實(shí)現(xiàn) REST 有多麻煩:

1. 創(chuàng)建 WCF 服務(wù)(ServiceContract)。

2. 創(chuàng)建 .svc 文件指向該 WCF 服務(wù)。

3. 在 web.config 中添加<service>/<endpoint>  配置,并將 binding 設(shè)置為 webHttpBinding,示例配置如下:

  1. <services> 
  2.     <service name="CNBlogs.OpenAPI.Service.NewsRestService"> 
  3.     <endpoint binding="webHttpBinding"   
  4.                 contract="CNBlogs.OpenAPI.Service.INewsRestService"   
  5.                 behaviorConfiguration="RESTFul" /> 
  6.     </service> 
  7. </services> 

4. 在 web.config 中添加 <endpointBehaviors>/<behavior> 配置,并在其中添加<webHttp />,在第3步的配置中添加該behaviorConfiguration(比如上面代碼中的behaviorConfiguration="RESTFul"),示例配置如下:

  1. <endpointBehaviors> 
  2.     <behavior name="RESTFul"> 
  3.         <webHttp /> 
  4.     </behavior> 
  5. </endpointBehaviors> 

5. 在 OperationContract 方法上增加 WebInvoke 屬性,示例代碼如下:

  1. [OperationContract]  
  2. [WebInvoke(Method = "GET",  
  3.     UriTemplate = "News/Recent/{itemcount}",  
  4.     ResponseFormat = WebMessageFormat.Xml)  
  5. ]          
  6. IQueryable<NewsItem> GetRecentNews(int itemcount); 

上面的5步已經(jīng)夠麻煩了。開始以為到此就可以收工了,哪知不運(yùn)行不知道,一運(yùn)行嚇一跳:

  1. Operation 'GetRecentNews' in contract 'INewsRestService' has a path variable named 'itemcount' which does not have type 'string'.    
  2. Variables for UriTemplate path segments must have type 'string'. 

參數(shù)竟然不能用int類型,必須要用 string。只能望 WCF 心嘆,不得不進(jìn)入第6步。

6. 將 int 改為 string
 

  1. IQueryable<NewsItem> GetRecentNews(string itemcount); 

這是純 WCF 實(shí)現(xiàn) REST 的表演節(jié)目,節(jié)目名稱叫“ WCF 實(shí)現(xiàn) REST 六步走”,表演得分6分。

接下來(lái),我們看看 WCF Web API 的表演

(如果不知道 WCF Web API 是何方神圣,請(qǐng)看演員介紹http://wcf.codeplex.com/wikipage?title=WCF%20HTTP)

1. 在提供 REST 服務(wù)的方法上增加 [WebGet(UriTemplate = "")] 屬性,示例代碼如下:

  1. [ServiceContract]  
  2. public class NewsRestService  
  3. {  
  4.     [WebGet(UriTemplate = "{itemcount}")]  
  5.     public IQueryable<NewsItem> GetRecentNews(int itemcount)  
  6.     {   
  7.         return newsList.AsQueryable();  
  8.     }   

2. 在 Global.asax 的 Application_Start 中添加路由,示例代碼如下:

  1. protected void Application_Start(object sender, EventArgs e)  
  2. {  
  3.     var config = new HttpConfiguration() ;  
  4.     RouteTable.Routes.Add(new ServiceRoute("news/recent",  
  5.         new HttpServiceHostFactory { Configuration = config },  
  6.         typeof(NewsRestService)));  

注:需要通過(guò) NuGet 添加對(duì) WebApi.All 的引用。news/recent 就是 REST 訪問(wèn)網(wǎng)址。

收工!只需兩步就實(shí)現(xiàn) REST,WCF Web API 的表演得分2分。

2 : 6,WCF Web API 大獲全勝!(分?jǐn)?shù)少的怎么反而獲勝?這是代碼世界,不是現(xiàn)實(shí)世界,程序員說(shuō)了算,誰(shuí)的代碼少,誰(shuí)就獲勝)

小結(jié)
WCF Web API 是 “First-class programming model for HTTP in WCF”,而 HTTP 是 Web 世界的通行證,Web API 可以讓我們更輕松地暢游于 Web 編程世界。

實(shí)現(xiàn) REST 只是 WCF Web API 小試牛刀,我們還可以不用修改任何服務(wù)端代碼,只改變客戶端請(qǐng)求的方式,就可以返回不現(xiàn)類型的數(shù)據(jù)。
比如:

1)將 HTTP Header 中的 Accept 改為 “application/json”,返回的就是 JSON 數(shù)據(jù)。

2)通過(guò) Url 參數(shù)發(fā)起 OData 查詢(比如“?$top=4&$orderby=Title” ),服務(wù)器收到請(qǐng)求后,會(huì)對(duì)返回結(jié)果進(jìn)行 LINQ 查詢(因此示例代碼中的返回值類型是IQueryable<NewsItem>)。

原文:http://www.cnblogs.com/dudu/archive/2011/10/27/wcf_web_api.html

【編輯推薦】

  1. 百度地圖API之如何制作公交導(dǎo)航
  2. 走進(jìn)Windows線程同步API
  3. 谷歌拼音輸入法擴(kuò)展API開發(fā)指南
  4. 新浪微博API開發(fā)簡(jiǎn)介之用戶授權(quán)(PHP基礎(chǔ)篇)
  5. 百度地圖API開發(fā)指南
責(zé)任編輯:陳貽新 來(lái)源: dudu的博客
相關(guān)推薦

2009-11-09 10:35:10

WCF REST服務(wù)

2010-10-28 09:56:53

Web APIRESTSOAP

2011-09-23 09:55:15

WCF Web API

2010-02-25 16:07:28

WCF REST

2009-11-06 14:40:34

WCF REST架構(gòu)

2010-02-24 09:18:49

WCF Adapter

2009-05-18 09:21:46

XMLRIAREST

2022-03-29 09:00:00

Angular框架REST API

2025-04-18 08:55:47

2009-07-22 14:50:50

ibmdwWeb2.0Twitter

2009-11-09 15:28:04

WCF知識(shí)結(jié)構(gòu)

2024-01-09 09:09:45

RESTGraphQL

2014-06-09 15:29:13

OData v4.0

2009-09-22 11:49:34

ibmdwREST

2023-01-10 09:48:03

RESTAPIJersey

2009-11-09 10:43:51

WCF Web編程模型

2009-12-08 18:31:58

WCF WEB

2011-04-28 09:23:36

REST

2009-07-29 17:45:09

ibmdwWebREST

2009-07-31 16:26:28

ibmdwREST
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 欧美日韩国产不卡 | 99精品视频一区二区三区 | 2019天天干天天操 | 欧美黑人一级爽快片淫片高清 | 日韩免费视频一区二区 | 欧美日韩一区二区视频在线观看 | www国产成人| 福利视频一区二区 | 成人在线一区二区三区 | 国产农村妇女毛片精品久久麻豆 | 曰批视频在线观看 | 久久综合香蕉 | 成年人黄色一级毛片 | 久久久入口 | 国产1区 | 中文字字幕一区二区三区四区五区 | 色婷婷av久久久久久久 | 国产色| 亚洲三区在线观看 | 天堂亚洲 | 国产欧美一区二区三区在线看 | 精品日韩一区二区三区 | 美女亚洲一区 | 国产高潮好爽受不了了夜色 | 亚洲精品一区二区三区在线 | 国产精品视频久久 | 久久久亚洲成人 | 精品国产乱码久久久久久闺蜜 | 99国产在线| 日韩av黄色 | 亚洲精品在线视频 | 成人精品福利 | 成人午夜免费福利视频 | 国产精品1区 | 日韩欧美视频网站 | 精品国产乱码久久久久久闺蜜 | 成人高潮片免费视频欧美 | 亚洲精品一区国产精品 | 国产精品视频在线观看 | 日韩一区二区福利视频 | 九九精品视频在线 |