標籤:
前言
本來一直參見於微軟官網進行學習的, 官網網址http://www.asp.net/web-api。出於自己想鍛煉一下學習閱讀英文文章的目的,又可以學習下微軟新發布的技術,其實也很久了,但自己菜鳥一枚,對自己來說都是新技術了。鑒於以上兩個原因,本人打算藉助google翻譯和有道詞典,來翻譯學習這個系列,並通過部落格園來記錄自己的翻譯學習過程。由於自己閱讀水平的確太菜,在藉助工具的情況下,有時候搞出來的也是蹩腳的語句,自己讀著都難受,尤其是到了Web API路由的那兩篇,所以自己想著是不是有別人也翻譯過此類文章,經過簡單的尋找還果然有高人翻譯過:http://www.cnblogs.com/r01cn/archive/2012/11/11/2765432.html,不過大神的系列也有很多空缺。所以自己就想著藉助大神的作品加上自己的那點臭水平繼續下去。通過官網的列表來看,文章的數量的確不少,所以自己想的是,開始暫時先把貫穿Web API的學習一下,至於一些邊角待日後進行翻譯完善:
以上是列表原址和google翻譯。
Asp.Net Web API系列導航
一: Getting Started(入門)
1.Asp.Net Web API 2第一課——入門 http://www.cnblogs.com/aehyok/p/3432158.html
二:Creating Web APIs(建立Web API)
2.Asp.Net Web API 2第二課——CRUD操作 http://www.cnblogs.com/aehyok/p/3434578.html
三:Web API Clients(Web API用戶端)
3.Asp.Net Web API 2第三課——.NET用戶端調用Web API http://www.cnblogs.com/aehyok/p/3439698.html
4.Asp.Net Web API 2第四課——HttpClient訊息處理器 http://www.cnblogs.com/aehyok/p/3442277.html
四:Web API Routing and Actions(Web API 路由和動作)
5.Asp.Net Web API 2第五課——Web API路由 http://www.cnblogs.com/aehyok/p/3442051.html
6.Asp.Net Web API 2第六課——Web API路由和動作選擇 http://www.cnblogs.com/aehyok/p/3444710.html
7.Asp.Net Web API 2第七課——Web API異常處理http://www.cnblogs.com/aehyok/p/3446863.html
8.Asp.Net Web API 2第八課——Web API中的屬性路由 http://www.cnblogs.com/aehyok/p/3449851.html
9.Asp.Net Web API 2第九課——Create a REST API with Attribute Routing in Web API 2
五:Working With HTTP(使用HTTP)
10.Asp.Net Web API 2第十課——Web API HTTP訊息處理
11.Asp.Net Web API 2第十課——Sending HTML Form Data
12.Asp.Net Web API 2第十課——HTTP Cookies in ASP.NET Web API
六:Formats and Model Binding(格式化和模型繫結)
13.Asp.Net Web API 2第十一課——Media Formatters媒體格式化器 http://www.cnblogs.com/aehyok/p/3460164.html
14.Asp.Net Web API 2第十一課——JSON and XML Serialization in ASP.NET Web APIhttp://www.cnblogs.com/aehyok/p/3460184.html
15.Asp.Net Web API 2第十一課——Content Negotiationhttp://www.cnblogs.com/aehyok/p/3481265.html
16.Asp.Net Web API 2第十一課——Model Validationhttp://www.cnblogs.com/aehyok/p/3481270.html
17.Asp.Net Web API 2第十一課——Parameter Binding in ASP.NET Web APIhttp://www.cnblogs.com/aehyok/p/3492259.html
七:OData
18.Asp.Net Web API 2第十六課——Creating an OData Endpoint in ASP.NET Web APIhttp://www.cnblogs.com/aehyok/p/3545824.html
19.Asp.Net Web API 2第十二課——Supporting OData Query Options
20.Asp.Net Web API 2第十二課——Supporting OData Query Options
21.Asp.Net Web API 2第十二課——Using $select, $expand, and $value in ASP.NET Web API OData
22.Asp.Net Web API 2第十二課——Working with Entity Relations in ODatahttp://www.cnblogs.com/aehyok/p/3550119.html
23.Asp.Net Web API 2第十二課——Supporting OData Actions in ASP.NET Web API
24.Asp.Net Web API 2第十二課——Web API OData Routing Conventions
25.Asp.Net Web API 2第十二課——OData Security Guidance
八:Security(安全)
26.Asp.Net Web API 2第十三課——Authentication and Authorization in ASP.NET Web API
27.Asp.Net Web API 2第十三課——Basic Authentication
28.Asp.Net Web API 2第十三課——Individual Accounts in ASP.NET Web API
29.Asp.Net Web API 2第十三課——Forms Authentication
30.Asp.Net Web API 2第十三課——Integrated Windows Authentication
31.Asp.Net Web API 2第十三課——Preventing Cross-Site Request Forgery (CSRF) Attacks
32.Asp.Net Web API 2第十三課——Working with SSL in Web API
33.Asp.Net Web API 2第十三課——External Authentication Services (C#)
34.Asp.Net Web API 2第十三課——Enabling Cross-Origin Requests in ASP.NET Web API
九:Hosting Asp.Net Web API(Asp.Net Web API託管)
35.Asp.Net Web API 2第十四課——使用OWIN自承載Web API http://www.cnblogs.com/aehyok/p/3456855.html
36.Asp.Net Web API 2第九課——自承載Web API http://www.cnblogs.com/aehyok/p/3456841.html
十:Testing and Debugging(測試和調試)
37.Asp.Net Web API 2第十五課——Tracing in ASP.NET Web API
十一:Extensibility(可擴充性)
38.Asp.Net Web API 2第十六課——Configuring ASP.NET Web API
39.Asp.Net Web API 2第十六課——Using the Web API Dependency Resolver
十二:其他資源——暫無打算
以上只是列出了學習的一個列表,至於學習那些和順序沒有嚴格的要求,正常的話所有的我都會進行學習翻譯,順序上變化可能比較多,這可是一向艱巨的任務,希望自己能夠堅持下去。下面簡單的來瞭解瞭解Web API。
Web API是什麼
在這篇文章當中比較詳細的介紹了Asp.Net Web API是什麼,在此也不做過多的強調了,想瞭解的可以點選連結http://devproconnections.com/development/microsoft-aspnet-whats-new-web-api這是原文地址,大神翻譯地址為http://www.cnblogs.com/r01cn/archive/2012/11/09/2762930.html。
下面的內容總結摘自http://www.cnblogs.com/developersupport/p/aspnet-webapi.html,感覺總結的很到位。
為什麼要用Web API
Web API最重要的是可以構建面向各種用戶端的服務。另外與WCF REST 服務不同在於Web API利用Http協議的各個方面來表達服務(例如 URI/request response header/caching/versioning/content format),因此就省掉很多配置。
當你遇到以下這些情況的時候,就可以考慮使用Web API了。
- 需要Web Service但是不需要SOAP
- 需要在已有的WCF服務基礎上建立non-soap-based http服務
- 只想發布一些簡單的Http服務,不想使用相對複雜的WCF配置
- 發布的服務可能會被頻寬受限的裝置訪問
- 希望使用開源架構,關鍵時候可以自己調試或者自訂一下架構
主要功能
Web API的主要功能
- 支援基於Http verb (GET, POST, PUT, DELETE)的CRUD (create, retrieve, update, delete)操作。 通過不同的http動作表達不同的含義,這樣就不需要暴露多個API來支援這些基本操作。
- 請求的回複通過Http Status Code表達不同含義,並且用戶端可以通過Accept header來與伺服器協商格式,例如你希望伺服器返回JSON格式還是XML格式。
- 請求的回複格式支援 JSON,XML,並且可以擴充添加其他格式。
- 原生支援OData。
- 支援Self-host或者IIS host。
- 支援大多數MVC功能,例如Routing/Controller/Action Result/Filter/Model Builder/IOC Container/Dependency Injection。
Asp.Net Web API 和Asp.Net MVC
你可能會覺得Web API 與MVC很類似,他們有哪些不同之處呢?
詳細點說他們的區別,
- MVC主要用來構建網站,既關心資料也關心頁面展示,而Web API只關注資料
- Web API支援格式協商,用戶端可以通過Accept header通知伺服器期望的格式
- Web API支援Self Host,MVC目前不支援
- Web API通過不同的http verb表達不同的動作(CRUD),MVC則通過Action名字表達動作
- Web API內建於ASP.NET System.Web.Http命名空間下,MVC位於System.Web.Mvc命名空間下,因此model binding/filter/routing等功能有所不同
- 最後,Web API非常適合構建移動用戶端服務
Web API和WCF
發布服務在Web API和WCF之間該如何取捨呢?這裡提供些簡單地判斷規則,
- 如果服務需要支援One Way Messaging/Message Queue/Duplex Communication,選擇WCF
- 如果服務需要在TCP/Named Pipes/UDP (wcf 4.5),選擇WCF
- 如果服務需要在http協議上,並且希望利用http協議的各種功能,選擇Web API
- 如果服務需要被各種用戶端(特別是移動用戶端)調用,選擇Web API
http://msdn.microsoft.com/en-us/library/jj823172.aspx
總結
又簡單的進行了系列的匯總和列舉,這也是一項很大的工程。暫時已經學習翻譯了六個課程,感覺其中的某些知識點和Asp.Net MVC有比較高的相似性,這也讓自己對MVC中的一些問題有了更為深刻的理解和認識。希望能有更多的朋友參與其中。
Asp.Net Web API 2 官網菜鳥學習系列導航[持續更新中]