猿教程 Logo

Web API概述

在我们理解Web API之前,让我们看看什么是API(应用程序编程接口)。

百度百科的定义API:API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。

简而言之,API是拥有一组函数组成的某种接口,它允许程序员访问应用程序的特定的功能或数据,操作系统或其他服务。

Web API顾名思义,是一个可以使用HTTP协议访问的API。

这是一个概念,而不是技术。

我们可以使用不同的技术来构建Web API,如Java、.net等。

例如,Twitter REST api提供编程访问读写数据的使用,我们可以将Twitter的功能集成到自己的应用程序。



ASP.NET Web API

Asp.Net Web API是一个可扩展的框架,用于构建基于HTTP的服务,这种服务可以在不同平台上的不同应用程序中访问:例如web应用、窗体应用、移动应用等等。它和ASP.NET MVC有相同的工作方式,但Web Api应用程序接收到请求后返回数据,而不是像MVC返回html视图。

它就像一个webservice 或WCF服务,但例外在于它只支持HTTP协议。



ASP.NET Web API特性

  1. ASP.NET Web API 是一个构建基于restful服务的理想平台。

  2. ASP.NET Web API 是基于Asp.Net,支持ASP.Net 请求/响应管道

  3. ASP.NET Web API 有良好的路由机制。

  4. ASP.NET Web API 支持不同格式的响应数据,内置支持JSON、XML BSON格式。

  5. ASP.NET Web API 可以部署非常方便。

  6. ASP.NET Web API框架包括新的HttpClient,他可以与Web API服务器通信。HttpClient可以在ASP.Net MVC服务器端,Windows Form应用程序,控制台应用程序或其他应用程序中使用。



ASP.NET Web API版本

web api版本支持的.net framework版本对应的MVC版本
支持的VS版本
Web API 1.0.NET Framework 4.0ASP.NET MVC 4VS 2010
Web API 2.0.NET Framework 4.5ASP.NET MVC 5VS 2012,VS 2013



ASP.NET Web API VS WCF

web apiwcf
开源,支持.net framework支持.net framework
只支持HTT通信协议支持HTTP,TCP,UDP以及自定义通信协议等
良好的路由机制来匹配url与对应接口基于Attribute来匹配
使用类似于Asp.net MVC的路由规则和Controller模型使用Service,契约等
不支持可靠的消息传递和事务。支持可靠的消息传递和事务。
可以使用HttpConfiguration 来配置Web Api,不一定需要web.config配置使用web.config和Attribute来配置一个服务
适合构建RESTful服务。支持构建RESTful服务但有局限性



什么时候用WCF

  • 如果你使用的是.net framework3.5,可以选择使用wcf,以为Web Api不支持.net 3.5及更低的版本。

  • 如果你需要支持多种协议如HTTP、TCP、命名管道等,可以选择WCF服务。

  • 如果你想建立满足WS - *标准的可靠的消息传递、交易、信息安全方面的服务,可以选择WCF服务。

  • 如果您想要使用请求-应答,单向或者双向消息通信模式,可以选择WCF。



什么时候用Web API

  • 如果您使用的是.Net Framework4.0或以上版本,可以选择Web API。

  • 如果你想建立一个仅支持HTTP协议的服务,可以选择Web API。

  • 如果你想构建基于restful的HTTP服务,可以选择Web API。

  • 如果你已经很了解Asp.Net MVC,可以选择Web API。


我们在接下来的部分从使用VS创建一个简单的Web Api项目开始Web Api之旅。



版权声明:本站所有教程均为本站原创或翻译,转载请注明出处,请尊重他人劳动果实。请记住本站地址:www.yuanjiaocheng.net (猿教程) 作者:卿文刚
本文标题: C#环境
本文地址:http://www.yuanjiaocheng.net/webapi/web-api-gaisu.html