Asp.Net Web API 2 官网菜鸟学习系列导航[持续更新中]
前言
本来一直参见于微软官网进行学习的, 官网网址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中的一些问题有了更为深刻的理解和认识。希望能有更多的朋友参与其中。