一、什么是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. pythonl练习笔记——python线程的GIL

    python线程中的全局解释器锁GIL(Global Interpreter Lock) python-->支持多线程-->同步和互斥-->加锁-->解释器加锁-->解释 ...

  2. System V IPC

    1.概述 System V IPC共有三种类型:System V消息队列.System V 信号量.System V 共享内存区. System V IPC操作函数如下: 2.key_t键和ftok函 ...

  3. qsort函数、sort函数

    先说明一下qsort和sort,只能对连续内存的数据进行排序,像链表这样的结构是无法排序的. 首先说一下, qsort qsort(基本快速排序的方法,每次把数组分成两部分和中间的一个划分值,而对于有 ...

  4. map以自定义类型当Key

    关于map的定义: template < class Key, class T, class Compare = less<Key>, class Allocator = alloc ...

  5. js 重写 bootstrap 样式 alert/confirm 消息窗口

    相信很多人都受够了 alert.confirm 的样子,最近正在用 bootstrap 做项目,顺便封装了一个 bootstrap 样式的消息框. 实现起来很简单,bootstrap 本身就自带了 m ...

  6. Oracle学习笔记之一,重温范式

    第一范式(1NF) 第一范式是第二和第三范式的基础,是最基本的范式.第一范式包括下列的指导原则: 数据组的每个属性只可以包含一个值. 关系中的每个数组必须只包含相同数量的值. 关系中的每个数组一定不能 ...

  7. WCF教程网址

    http://www.cnblogs.com/iamlilinfeng/archive/2012/09/25/2700049.html http://www.cnblogs.com/artech/ar ...

  8. C++学习笔记16,C++11中的显式的默认构造函数以及显示删除默认构造函数

    在早期的C++中.假设须要一些接受一些參数的构造函数,同一时候须要一个不接收不论什么參数的默认构造函数.就必须显示地编写空的默认构造函数.比如: //tc.h class A{ private: in ...

  9. 【Verilog】verilog实现奇数次分频

    实现占空比为50%的N倍奇数分频:首先进行上升沿触发进行模N计数,计数到某一个值时进行输出时钟翻转,然后经过(N-1)/2再次进行翻转得到一个占空比非50%的奇数n分频时钟.再者 同时进行下降沿触发的 ...

  10. 每日英语:Why 'The Voice' Is China's No. 1 TV Show

    U.S. fans of the hit talent show 'The Voice' may take for granted that its judges sit with their bac ...