通過HTTP協議標準動作消費REST WCF 服務

來源:互聯網
上載者:User

  前幾節介紹了REST WCF 服務的一些基本的特點,本節說明一下,如何基於HTTP的標準動作來使用REST WCF 服務。由於RESTful服務的架構風格基於HTTP協議,並且其設計原則中明確指出:通過通用的連接器介面來使用資源。對於REST架構風格的服務,主要通過它8個動作中的4個來使用資源,即:GET,POST,PUT,DELETE。
  在RESTful 服務中,GET,POST,PUT,DELETE的標準操作如下:
  GET:擷取資源
  POST:修改資源
  PUT:建立資源
  DELETE:刪除資源

本節涉及的要點如下:
1、如何定義介面規範,使用戶端通過能通過HTTP協議的標準動作來使用REST WCF資源。
2、用戶端如何通過HTTP標準動作使用使用資源
首先介紹一下開發環境:
VS2008 SP1。由於是基於Framework3.5的平台,所以本節介紹的只是REST WCF 3.5的一些特點。Ddmo結構圖:

1、介面規範的定義:
  對REST 架構風格有一些瞭解的同學都知道,在System.ServiceModel.Web程式集中,微軟為我們提供了兩個特性:WebGetAttribute、WebInvokeAttribute.
前幾節也做過一個簡要的介紹,WebGetAttribute通過名稱可以得知,它是用來擷取資源的,所以它使用的HTTP動作是GET。在REST WCF中,其他的幾個動作都是在WebInvokeAttribute中定義的。
  REST WCF中,就是通過在WebGetAttribute與WebInvokeAttribute中,通過UriTemplate屬性定義了資源的使用方式。另外還可以通過RequestFormat、ResponseFormat定義用戶端請求時使用的資料格式以及服務端返回給用戶端的資料格式。
  在本例中,通過服務契約定義來定義介面規範以及用戶端的使用規範。如示:

註:UriTemplate中類似Student/{name}中的{name}即為所定義方法中所需參數的預留位置。
2、用戶端使用REST WCF 。
2.1使用HTTP GET 動作擷取資源:

string getMsg = client.DownloadString("http://localhost:6012/Student.svc/Student/zhangRest");Console.WriteLine(string.Format("get方法擷取到的學生資訊:{0}", getMsg));

  

2.2使用HTTP POST 動作修改資源:

string postMsg = client.UploadString("http://localhost:6012/Student.svc/Student/lizhi/0105245687", "POST",string.Empty);Console.WriteLine(string.Format("post方法修改到的學生資訊:{0}", postMsg));

  

2.3使用HTTP DELETE 動作刪除資源:

string deleteMsg = client.UploadString("http://localhost:6012/Student.svc/Student/zhangRest", "DELETE", string.Empty);Console.WriteLine(string.Format("delete方法刪除到的學生資訊:{0}", deleteMsg));

  

2.4使用HTTP PUT動作添加資源:

string addMsg = client.UploadString("http://localhost:6012/Student.svc/Student/zhangsan/0102356897", "PUT", string.Empty);Console.WriteLine(string.Format("put方法添加的學生資訊:{0}", addMsg)); 

  

四種動作的使用方式如上所示。

  在REST WCF中,URI(Uniform Resources Identifier)就是在服務契約中定義通過UriTemplate定義的,而不像在SOA架構下的服務中直接使用方法名。

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.