ASP.NET Web API

创建时间:
2014-02-04 00:06
最近更新:
2018-10-02 11:02

What

ASP.NET Web API is a framework that makes it easy to build HTTP services that reach a broad range of clients, including browsers and mobile devices. ASP.NET Web API is an ideal platform for building RESTful applications on the .NET Framework.

ASP.NET Web API 是 ASP.NET MVC 4 BETA 版的一部分。

ASP.NET Web API 2 的主要改进

  • 功能提升:Attribute Routing、OData、可攜式 ASP.NET Web API Client、IHttpActionResult。
  • 安全提升:CORS、Authentication filters。
  • OWIN 让 ASP.NET Web API 能運作於相容 OWIN 的託管環境,而不再非 IIS 不可。

Resource - Official

  1. ASP.NET Web API - MSDN 上的入口
  2. Learn About ASP.NET Web API
  3. Learn About ASP.NET Web API - 部分译文

Resource

  1. Visual Studio 2013 新教程:Asp.Net Web API - 目录
  2. Visual Studio 2013 新教程:Asp.Net Web API 2第一课——入门 (已有6课)
  3. MVC4 WebAPI
  4. MVC4 WebAPI
  5. WCF Web API 说再见,继承者 ASP.NET Web API
  6. WCF Web API 说再见,继承者 ASP.NET Web API
  7. ASP.NET Web API 简介
  8. 示例
  9. ASP.NET Web API (一):使用初探,GET 和 POST 数据
  10. Web API 用法
  11. ASP.net Web API 综合示例
  12. 实战 ASP.NET Web API
  13. ASP.NET Web API 简介
  14. HttpClient + ASP.NET Web API, WCF 之外的另一个选择
  15. WCF 和 ASP.NET Web API 在应用上的选择
  16. 通过 Knockout.js + ASP.NET Web API 构建一个简单的 CRUD 应用
  17. 使用 ASP.NET Web API 构建基于 REST 风格的服务实战系列教程
  18. How ASP.NET Web API 2.0 Works?
  19. ASP.NET Web API 教程 (一) 你的第一个 Web API
  20. 依赖注入与扩展
  21. Parameter Binding in ASP.NET Web API (参数绑定) - Translation
  22. Parameter Binding in ASP.NET Web API (参数绑定) - Original
  23. Parameter Binding in ASP.NET Web API (参数绑定) - List
  24. Asp.Net Web API 2 第七课 - Web API 异常处理
  25. ASP.NET Web API - Sending HTML Form Data (发送 HTML 表单数据) - Mike Wasson posted on 2012-6-15
  26. ASP.NET Web API - Sending HTML Form Data (发送 HTML 表单数据) - Mike Wasson posted on 2012-6-15
  27. ASP.NET Web API 跨域资源共享 (Cross Origin Resource Sharing)
  28. 8 种提升 ASP.NET Web API 性能的方法 - translation
  29. 8 种提升 ASP.NET Web API 性能的方法 - original
  30. Web API 入门 - 移除 XML 格式
  31. Web API 应用支持 HTTPS 的经验总结

Resource (ASP.NET Web API 安全)

  1. Web API 入门指南 - 闲话安全
  2. Web API 入门指南 - 闲话安全
  3. ASP.NET web API 身份验证 (已浏览至第 5 页)
  4. ASP.NET MVC 4 Web API 中的安全认证 - 自定义 Authrize Filter
  5. ASP.NET MVC 4 Web API 中的安全认证 - 使用 OAuth
  6. ASP.NET 中 WebService 的两种身份验证方法
  7. ASP.NET MVC 及 Web API 框架配置会碰到的几个问题及解决方案
  8. 启用和自定义 ASP.NET Web API 服务的安全性
  9. ASP.NET Web API (三):安全验证之使用摘要认证 (digest authentication)
  10. ASP.NET Web API 身份验证和授权
  11. 使用 RestSharp 库消费 Restful Service (涉及安全)
  12. ASP.NET Web API 教程 (六) 安全与身份认证
  13. 身份验证
  14. 身份验证
  15. ASP.NET Web API 身份验证和授权 (zh-CN)
  16. ASP.NET Web API 身份验证和授权 (en-US)
  17. Web API 与手机客户端通信安全机制
  18. Web API 之认证 (Authentication) 及授权 (Authorization)

通过 ASP.NET Web API + JQuery 创建一个简单的 Web 应用

http://www.cnblogs.com/artech/archive/2012/05/14/web-api-demo.html

其实 MVC 现有的 URL 路由机制和采用 HttpPostAttribute、HttpGetAttribute、AcceptVerbsAttribute 针对 HTTP Method 的匹配完全可以用在 Web API 上。
-- Artech

较之 WCF REST,Web API 更易上手。毕竟 WCF REST 是在基于 SOAP 的处理框架上的一个扩展,而 Web API 就是为 REST 设计的。
-- Artech

其实现有的 ASP.NET MVC,甚至是 ASP.NET Web Form 都可以实现所有的 REST,但是 Web API 使这些事情变得更加容易。以本文为例,我们通过浏览器得到的数据是以 XML 的形式返回的,但是我们调用 AJAX 返回的对象则是 JSON,根据 Content Type 对象进行序列化就是 Web API 内部帮助做的一个典型的封装。如果用传统的 MVC,我们可能就要写两个 Action,一个 Action 以 string 类型返回 XML,另一个以 JsonResult 形式返回 JSON。
-- Artech

Web API 可以视为 REST Service,Web API 就是 REST 在 ASP.NET 平台上的实现。
-- Artech

如果 API 和调用跨域,一般会采用 JSONP 的方式实现。
-- Artech

OAuth2 认证不错的,业界标准,我做了个 POC,还没写文章
-- 张善友

安全: del.icio.us API

The del.icio.us API requires you to make authenticated requests, passing your del.icio.us username and password using HTTP authentication. This is easily accomplished by adding an instance ofNetworkCredentials to the request.

安全: new NetworkCredential("username", "password")

// Create the web request
HttpWebRequest request = WebRequest.Create("https://api.del.icio.us/v1/posts/recent") as HttpWebRequest;

// Add authentication to request
request.Credentials = new NetworkCredential("username", "password");

// Get response
using(HttpWebResponse response = request.GetResponse() as HttpWebResponse) {
	// Get the response stream
	StreamReader reader = new StreamReader(response.GetResponseStream());

	// Console application output
	Console.WriteLine(reader.ReadToEnd());
}