一、什么是API

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

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

二、Web API

Web API顾名思义就是一个可以使用HTTP协议访问的API。这是一个概念,不是技术。

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

1、ASP.NET Web API

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

ASP.NET Web API就像一个webservice或WCF服务,但是ASP.NET Web API只支持HTTP协议。

2、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等。

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

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

3、ASP.NET Web API版本

Web API版本 支持的.NET Framework框架 对应的MVC版本 支持的VS版本
Web API 1.0 .NET Framework 4.0 ASP.NET 4 VS 2010
Web API 2.0 .NET Framework 4.5 ASP.NET 5 VS 2012、VS2013、VS2015、VS2017

4、ASP.NET Web API vs ASP.NET MVC

1)MVC主要用来构建网站,既关心数据也关心页面展示,而Web API只关注数据。

2)Web API支持格式协商,客户端可以通过Accept header通知服务器期望的格式。

3)Web API支持Self Host,而MVC目前不支持。

4)Web API通过不同的http werb表达不同的动作(CRUD),而MVC则是通过Action名字来表达动作。

5)Web API位于 ASP.NET System.Web.Http命名空间下,而MVC位于System.Web.Mvc命名空间下。

6)Web API非常适合构建移动客户端服务。

5、ASP.NET Web API vs WCF

Web API WCF
开源,支持.NET Framework 支持.NET Framework
只支持HTTP协议 支持HTTP、TCP、UDP等协议
良好的路由机制来匹配URL与对应接口 基于特性(Attribute)来匹配
使用类似于ASP.NET MVC的路由规则和Controller模型 使用Service、契约等
不支持可靠的消息传递和事物。 支持可靠的消息传递和事物
可以使用HttpConfiguration来配置Web API,不一定需要web.config 使用web.config和Attribute来配置一个服务
适合构建RESTful服务 支持构建RESTful服务但是有局限性。

6、如何选择使用WCF

1)如果你使用的是.NET Framework3.5,可以选择使用WCF,因为ASP.NET Web API不支持.NET Framework 3.5及更低版本。

2)如果需要支持多种协议,如HTTP、TCP、net.tcp等,可以选择WCF服务。

3)如果想建立满足WS标准的可靠的消息传递、交易的服务,可以选择WCF服务。

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

7、如何选择使用Web API

1)如果使用的是.NET Framework4.0或以上版本,可以选择Web API。

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

3)如果想构建基于RESTful的HTTP服务,可以选择Web API。

4)如果服务需要被各种客户端(特别是移动客户端)调用,现在Web API。

Web API(二):Web API概述的更多相关文章

  1. ASP.NET MVC 4 (十二) Web API

    Web API属于ASP.NET核心平台的一部分,它利用MVC框架的底层功能方便我们快速的开发部署WEB服务.我们可以在常规MVC应用通过添加API控制器来创建web api服务,普通MVC应用程序控 ...

  2. asmx 、Web Service、Web API

    asmx .Web Service.Web API asmx 是WEB服务文件 asmx.cs里有相关代码 属于B/S形式,用SOAP方式HTTP访问,用XML返回 可以返回基础类型和PUBLIC结构 ...

  3. Web APi之Web Host消息处理管道(六)

    前言 我们知道Web API本身是无法提供请求-响应的机制,它是通过Web Host以及Self Host的寄宿的宿主方式来提供一个请求-响应的运行环境.二者都是将请求和响应抽象成HttpRespon ...

  4. ASP.NET Core Web API 开发-RESTful API实现

    ASP.NET Core Web API 开发-RESTful API实现 REST 介绍: 符合REST设计风格的Web API称为RESTful API. 具象状态传输(英文:Representa ...

  5. IIS 7管理API——Microsoft.Web.Administration介绍

    原文:http://www.cnblogs.com/dflying/archive/2006/04/17/377276.html 本文翻译整理自Carlos Aguilar Mares的blog文章: ...

  6. 用HTML5、地理定位API和Web服务来开发移动应用

    HTML 5 是一项让人振奋的技术,这有着充分的理由.这将会是一次技术突破,因为它可以将桌面应用程序功能带入浏览器中.除了传统浏览器外,对于移动浏览器,其潜力甚至更大.不仅如此,最流行的移动浏览器甚至 ...

  7. 返璞归真 asp.net mvc (11) - asp.net mvc 4.0 新特性之自宿主 Web API, 在 WebForm 中提供 Web API, 通过 Web API 上传文件, .net 4.5 带来的更方便的异步操作

    原文:返璞归真 asp.net mvc (11) - asp.net mvc 4.0 新特性之自宿主 Web API, 在 WebForm 中提供 Web API, 通过 Web API 上传文件, ...

  8. ASP.NET Core的身份认证框架IdentityServer4--(2)API跟WEB端配置

    API配置 可以使用ASP.NET Core Web API模板.同样,我们建议您控制端口并使用与之前一样的方法来配置Kestrel和启动配置文件.端口配置为http://localhost:5001 ...

  9. go web framework gin group api 设计

    假如让你来设计group api, 你该怎么设计呢? group api 和普通api的区别在于前缀不同,如果group api的版本为v1.0 那么相对应的url为/v1.0/xxx, 如果是普通a ...

  10. SharePoint 2013 APP 开发示例 (六)服务端跨域访问 Web Service (REST API)

    上个示例(SharePoint 2013 APP 开发示例 (五)跨域访问 Web Service (REST API))是基于JavaScript,运行在web browser内去访问REST AP ...

随机推荐

  1. web development blog(转)

    Top 10 jQuery Mobile Code Snippets that you need to know jQuery Mobile is a framework for mobile web ...

  2. 用浏览器访问WCF

    在开发的时候,为客户端编写代码访问WCF的方式,我们应该比较熟悉,主要是添加一个代理,然后通过这个代理进行访问. 如果用浏览器访问WCF呢?(其实最终是想在JS里面访问)用浏览器访问.测试Web Se ...

  3. 深入理解Java:自定义java注解

    要深入学习注解,我们就必须能定义自己的注解,并使用注解,在定义自己的注解之前,我们就必须要了解Java为我们提供的元注解和相关定义注解的语法. 元注解: 元注解的作用就是负责注解其他注解.Java5. ...

  4. Android Fragment之间传递List数据

    要说的是在两个Fragment之间传递List数据,比如有个List<User>,以及传递字符串数据,比如testId,该如何从FragmentA传递到FragmentB呢? 下面这个例子 ...

  5. MVC图片上传、浏览、删除 ASP.NET MVC之文件上传【一】(八) ASP.NET MVC 图片上传到服务器

    MVC图片上传.浏览.删除   1.存储配置信息 在web.config中,添加配置信息节点 <appSettings> <add key="UploadPath" ...

  6. DataTable.Compute()

    一.DataTable.Compute()方法說明如下 作用:          计算用来传递筛选条件的当前行上的给定表达式. 格式為:          Object Compute (string ...

  7. socket 请求接收完整的一个http响应(设置recv 接收超时选项SO_RCVTIMEO)

    在前面的系列网络编程文章中,我们都是使用socket 自己实现客户端和服务器端来互相发数据测试,现在尝试使用socket 客户端发 送http 请求给某个网站,然后接收网站的响应数据.http 协议参 ...

  8. Linux内核同步 - spin_lock

    一.前言 在linux kernel的实现中,经常会遇到这样的场景:共享数据被中断上下文和进程上下文访问,该如何保护呢?如果只有进程上下文的访问,那么可以考虑使用semaphore或者mutex的锁机 ...

  9. Java JNI的具体介绍

    JNI就是Java Native Interface的简称,也就是java本地接口.它提供了若干的API实现了和Java和其它语言的通信(主要是C&C++).也许不少人认为Java已经足够强大 ...

  10. introduction to python for statistics,analysis笔记2

    一.行列式连接concatenate函数,axis=0是垂直拼接,axis=1是水平拼接 x=np.array([[],[,]]); y=np.array([[],[,]]); z=np.concat ...