2012-07-24 145 views
0

我已閱讀了有關asp.net Web API的知識,但我不確定是否理解Web API工具背後的概念。現在讓我們說,我已經定義了從APIController派生的控制器,並且我可以使用URL調用這個控制器,然後控制器將JSON結果返回給客戶端,,,如何使用asp.net Web API開發RESTful Web服務器

那麼,這是否意味着,我的asp.net MVC Web應用程序中的APIController是作爲RESTfull Web服務公開的? BR

回答

2

無論您的API是否被認爲是'REST滿'是一個設計問題,而不是使用哪個庫/項目模板的問題。請記住,API的全部要點是公開一個簡單的編程接口 - 在這個方面它如何在幕後實現並不重要。

但是,WebAPI項目模板確實很適合設計restfull服務,因爲它內置了設計原則。

後面的REST API的基本思想是:

  • 使用HTTP協議(其的WebAPI確實,所以檢查)
  • 公開一個簡單的API,用於處理數據,通常與POST/GET/PUT/DELETE綁定到數據處理方法(這是什麼的WebAPI的設計很適合)
  • 傳輸數據,可互操作的格式(JSON,XML,也是很容易的WebAPI可行)

這是沒有太大的不同的F使用基本的MVC Controller/Actions設計REST API,WebAPI使它變得更容易一些。

這裏是一個不錯的視頻系列:http://www.asp.net/web-api/videos/getting-started/your-first-web-api

0

好Apicontroller完全以不同的MVC控制器,它來自於WCF的WebAPI,但取得了非常類似於經典的asp.net控制器的開發。重點是加快制定休息服務。

所以,你只需要像往常一樣分配一個路由,製作一些控制器,而不是使用querystring和body json(默認)並自動轉換到Poco類並返回給你另一個自動序列化爲jsion的Poco類。

+1

很抱歉,更正您,但ApiController不是來自WCF Web API項目。 – user1527329 2012-07-24 08:44:09

+0

是的你是對的。我不清楚。我的意思是Apicontroller不擴展Controller甚至ControllerBase類,它只是實現IHttpController – 2012-07-24 08:52:35

1

我只想補充到安德斯

REST代表Representational state transfer
架構所以基本上你選擇一個resourcehttp://www.example.com/USER
你指示服務器上做資源的操作。由哪些Web API會被髮送
HTTP請求的類型指定出來的箱子
POST的 - 添加新用戶
PUT - 編輯現有用戶信息
GET - 只需retrives用戶(S)信息
DELETE - 刪除用戶信息
,這是REST

正在發送或recived(JSONXML)的類型的數據。不是其餘規格的一部分。也可以決定asp.net web api數據返回並以什麼格式發送使用 AcceptContent-Type標題與您的請求