原文 【翻译】ASP.NET Web API是什么?

说明:随微软ASP.NET MVC 4一起发布的还有一个框架,叫做ASP.NET Web API。目前国内关注这项技术的人似乎还很少,这方面的文章也不多见。开发Web应用程序也许可以只用MVC这样的技术,而不用这项Web API技术,但如果用了,会给你的应用程序带来极大的好处。为此,本人转载并翻译了以下这篇文章,后面还会陆续翻译该项技术的一些官方教程。大家一起学习,共同提高。

Microsoft ASP.NET: What's This New Web API?
微软ASP.NET:新的Web API是什么?

摘自:http://www.devproconnections.com/article/asp/microsoft-aspnet-web-api-142516

Don Kiely explains why Microsoft's Web API shines as a new technology for developers
Don Kiely解释为什么微软的Web API是开发人员的一项耀眼的新技术。


Don Kiely
Dev Pro
InstantDoc ID #142516
March 08, 2012 08:00 AM

After a respite in 2011 from new product mania, Microsoft is on a tear in 2012 to release early versions for many of its development tools. In the past couple of weeks we've seen a preview for Visual Studio 2011 and ASP.NET MVC 4. We also got our first look at the SQL Server 2012 release candidate. These new releases mark an exciting time for technology, even if it means reevaluating these technologies and determining what skills developers should learn and focus on.
经过2011新产品狂热的一段喘息之后,微软2012年猛然发布了许多开发工具的早期版本。在前几个星期我们看到了Visual Studio 2011和ASP.NET MVC 4的预览版。我们也拿到了SQL Server 2012预发行版。这些最新发布标志着技术令人激动的时刻,尽管这仅意味着对这些技术的重新评估,并决定着开发人员应当学习和关注哪些技能。

One truly new and exciting technology for Microsoft is the Web API. I wasn't initially enthusiastic about this API, because it seemed to be another web service that's similar to the RESTful API. Do we really need another API when we already have ASP.NET Web Services and Windows Communication Foundation (WCF), or has Microsoft gone nutty about these kinds of APIs just as it has with data-access APIs?
一项真正全新且令人兴奋的微软技术是Web API。我最初并不热衷于这个API,因为它似乎只是类似于REST化API的另一项web服务。在已经有了ASP.NET Web Services(ASP.NET Web服务)和Windows Communication Foundation(Windows通信基础 — WCF)时,还真正需要另外一种API吗?或者,微软已经陷入疯狂制作各种API,就像它做数据访问API那样?

I won't address the last part of that question—Microsoft seems pretty nutty at times—but I'm really starting to warm up to the new Web API, particularly because it's solidified into what appears to be the actual release API. I've come to realize that the reason for this is that the Web API feels natural and seems to fit in with the kinds of applications that I build. The Web API is far more than the relatively basic and hard-to-secure ASP.NET Web Services and the mind-numbingly complex WCF that always feels like a gross overkill for most things a website needs to do. At least this situation is true for the kinds of applications that I build most often these days.
我没有注意到问题的后一部分 — 微软有时确实是相当疯狂的 — 但我对这个新的Web API真正开始热衷起来了。我开始认识到,这么做的原因是Web API感觉自然,而且它似乎适合于我所建立的各种应用程序。Web API远远超过了相对基本且难以安全的ASP.NET Web服务,而极为复杂的WCF总让人感觉对于web网站要做的事件就像杀鸡用了牛刀。至少,对于我这些日子最经常建立的各种应用程序而言,情况确实是这样。

I've outlined some pretty subjective reasons for why I like the new Web API. From an objective and raw technology perspective, the Web API is designed and lives for HTTP. One complex problem with WCF is that it provides everything for everyone for every transport protocol, as Matt Milner explains in his blog post. You have to do some work to use WCF over HTTP. In contrast, the Web API is designed from the ground up to make good use of HTTP, warts and all. The Web API isn't exactly lightweight, but with only one protocol to support the API, it doesn't have a lot of excess baggage.
我概括了为什么喜欢这个新的Web API的一些相当主观的原因。从客观和原始技术的观点看,Web API是为HTTP而设计和存在的。WCF的一个复杂问题是它对每一个传输协议提供了方方面面的东西,就像Matt Milner在他的博客文章所解释的那样。你必须做一些工作才能将WCF运用于HTTP。与之相反,Web API毫无保留地就是围绕充分利用HTTP而设计的。Web API其实并不是轻量级的,但它只针对一个协议来支持API,它不会产生很多超重的包袱。

The other thing that I like about the Web API is that it reflects the direction in which the web is headed. As Scott Guthrie points out in the first part of his blog post series about the Web API, many large websites are exposing Web APIs to make their services available to third-party applications (he cites Facebook, Twitter, LinkedIn, and Netflix as examples). He also lists a bunch of reasons why a Web API is a good solution, including a modern HTTP programming model. It's about time Microsoft got around to providing this model!
我喜欢Web API的另一件事是,它反映了web前进的方向。正如Scott Guthrie在他关于Web API系列文章的第一部分(中文版网址:http://blogs.msdn.com/b/scottgu/archive/2012/03/26/asp-net-web-api.aspx)所指出的那样,许多大型网站都暴露了Web API,以使第三方应用程序能运用它们的服务(他例证了Facebook、Twitter、LinkedIn,以及Netflix等)。他也列出了一打理由,以说明为什么Web API是一种好的解决方案,包括一个“现代HTTP编程模型”。现在,已经到了微软提供这种模型的时候了!

I love the close integration of the Web API with ASP.NET MVC. Microsoft chose to implement custom Web APIs by using the well-established controller model. This makes sense because a lot of people were already implementing custom Web APIs by using MVC controllers that return JSON data to the client. That's a slick solution, and the Web API just makes it better. The only big difference is that a Web API controller implements ApiController class instead of Controller class, which in turn implements the IHttpController interface. ApiController is a relatively simple class in the System.Web.Http namespace, so it isn't tied exclusively to ASP.NET MVC, but it understands the HTTP protocol and most of its common verbs.
我喜欢Web API与ASP.NET MVC的密切集成。微软通过运用建立良好的控制器模型来选择实现自定义Web API。这是有意义的,因为,通过使用MVC的控制器把JSON数据返回给客户端的办法,很多人都已经实现了自定义Web API。这是一个平滑的解决方案,而且Web API恰恰使之更好。唯一大的差别是Web API控制器实现的是ApiController类,而不是Controller类,它转而实现了IHttpController接口。ApiController是System.Web.Http命名空间中的一个相对简单的类,因此它并未专门绑定于ASP.NET MVC,但它能够理解HTTP协议及其大多数常规谓词。

Best of all, the API is available to a wide variety of clients, including mobile applications. In fact, this fact is probably its biggest selling point. Web applications are increasingly not limited to applications that run in a desktop browser.
最好原因是,这种API可用于十分广泛的客户端,包括移动应用程序。事实上,这一事实可能是它最大的卖点。Web应用程序已经日益不仅限于运行在桌面浏览器的应用程序了。

I'm not as big a fan of Microsoft's Web API as I am of Entity Framework, but I can already feel the tug. It'll be interesting to see how widely used this new technology becomes when it's finally released, but right now Web API is looking like a winner.
我是实体框架而不是微软Web API的大粉丝,但我已经能够感觉到这种拽力。看到新技术在它最终发布时变得广泛使用是很有趣的,而现在,Web API渐渐看起来像是一个赢家。

【翻译】ASP.NET Web API是什么?的更多相关文章

  1. [翻译]ASP.NET Web API 2 中的全局错误处理

    目录 已存在的选项 解决方案预览 设计原则 什么时候去用 方案详情 示例 附录: 基类详情 原文链接 Global Error Handling in ASP.NET Web API 2 由于翻译水平 ...

  2. [翻译]ASP.NET Web API的路由

    原文:Routing in ASP.NET Web API 在我们新建一个Web API项目时,会在App_Start文件夹下的WebApiConfig.cs中定义一个默认路由: config.Rou ...

  3. [翻译]ASP.NET Web API 2入门

    原文:Getting Started with ASP.NET Web API 2 Step 1:新建一个Empty的Web API Project. Step 2:添加一个Model: public ...

  4. Web API 2 入门——使用ASP.NET Web API和Angular.js构建单页应用程序(SPA)(谷歌翻译)

    在这篇文章中 概观 演习 概要 由网络营 下载网络营训练包 在传统的Web应用程序中,客户机(浏览器)通过请求页面启动与服务器的通信.然后,服务器处理请求,并将页面的HTML发送给客户端.在与页面的后 ...

  5. Web API 2 入门——创建ASP.NET Web API的帮助页面(谷歌翻译)

    在这篇文章中 创建API帮助页面 将帮助页面添加到现有项目 添加API文档 在敞篷下 下一步 作者:Mike Wasson 创建Web API时,创建帮助页面通常很有用,以便其他开发人员知道如何调用A ...

  6. ASP.NET Web API 开篇示例介绍

    ASP.NET Web API 开篇示例介绍 ASP.NET Web API 对于我这个初学者来说ASP.NET Web API这个框架很陌生又熟悉着. 陌生的是ASP.NET Web API是一个全 ...

  7. ASP.NET Core 中文文档 第二章 指南 (09) 使用 Swagger 生成 ASP.NET Web API 在线帮助测试文档

    原文:ASP.NET Web API Help Pages using Swagger 作者:Shayne Boyer 翻译:谢炀(kiler) 翻译:许登洋(Seay) 对于开发人员来说,构建一个消 ...

  8. 新作《ASP.NET Web API 2框架揭秘》正式出版

    我觉得大部分人都是“眼球动物“,他们关注的往往都是目光所及的东西.对于很多软件从业者来说,他们对看得见(具有UI界面)的应用抱有极大的热忱,但是对背后支撑整个应用的服务却显得较为冷漠.如果我们将整个“ ...

  9. ASP.NET Web API 2框架揭秘

    ASP.NET Web API 2框架揭秘(.NET领域再现力作顶级专家精讲微软全新轻量级通信平台) 蒋金楠 著   ISBN 978-7-121-23536-8 2014年7月出版 定价:108.0 ...

随机推荐

  1. java.lang.IllegalStateException: No data type for node: org.hibernate.hql.ast.tree.MethodNode(尼玛,蛋疼的错误)

    java.lang.IllegalStateException: No data type for node: org.hibernate.hql.ast.tree.MethodNode   \-[M ...

  2. poj-3899-The Lucky Numbers 模拟+数学

    题目链接: http://poj.org/problem?id=3899 题目意思: 求给定区间内,只含4.7的数的个数以及通过反转后在该区间内的个数和. 解题思路: 模拟+数学. 代码解释的很详细, ...

  3. WCF技术剖析之三十:一个很有用的WCF调用编程技巧[下篇]

    原文:WCF技术剖析之三十:一个很有用的WCF调用编程技巧[下篇] 在<上篇>中,我通过使用Delegate的方式解决了服务调用过程中的异常处理以及对服务代理的关闭.对于<WCF技术 ...

  4. MUI AJAX Raw请求数据

    提交接口数据,接口方提供的是post请求,body - raw ; 我尝试过JQuery ajax raw 的方式,但是始终无法成功 然后我回想到我用的是mui我就开始考虑用mui.ajax结果就成功 ...

  5. MinGW开发工具的安装

    MinGW是Minimalist GNU for Windows的缩写,是把linux下的GNU开发工具包移植到windows的项目之一.和Cygwin不一样的是,MinGW不提供linux的posi ...

  6. maven本地jar

    <dependency> <groupId>javax.mail</groupId> <artifactId>mail</artifactId&g ...

  7. 趋势科技4月移动client病毒报告

    2014年4月移动client安全威胁概况 截至2014年4月30日,中国区移动client病毒码1.669.60,大小9,792,484字节,能够检測病毒约221万个.移动client病毒约12万个 ...

  8. Java的位运算符具体解释实例——与(&amp;)、非(~)、或(|)、异或(^)

    位运算符主要针对二进制,它包含了:“与”.“非”.“或”.“异或”.从表面上看似乎有点像逻辑运算符,但逻辑运算符是针对两个关系运算符来进行逻辑运算,而位运算符主要针对两个二进制数的位进行逻辑运算.以下 ...

  9. C# -- 什么是方法签名?

    签名指的是返回值和参数. 比如 : public void A ( int p1,int p2){} public void B ( int q1,int q2){} 的签名相同. 而 public ...

  10. BZOJ 2750: [HAOI2012]Road( 最短路 )

    对于每个点都跑最短路, 然后我们得到了个DAG, 在这DAG上更新每条边的答案. 考虑e(u, v)∈DAG对答案的贡献:  假设从S到u得路径数为A[u], 从v出发到达任意点的路径数为B[v], ...