一、什么是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. LevelDB场景分析1--整体结构分析

    基本用法 数据结构 class DBImpl : public DB { private:     struct CompactionState;     struct Writer;// Infor ...

  2. 【驱动笔记10】再谈IRP

    文章作者:grayfox作者主页:http://nokyo.blogbus.com原始出处:http://www.blogbus.com/nokyo-logs/34010655.html 这一节会对I ...

  3. 江南白衣 Java性能优化PPT

    会后江南白衣花费数日整理PPT,到1.4版本共66页,内容翔实且旁征博引,不断校正且力求做到极致的匠艺精神值得尊敬! 技术大牛飒然Hang如是说到: “技术大神中,除了陈皓就是白衣了,四十岁还能钻研. ...

  4. php导出excel(xls或xlsx)

    $titles = array('订单号','商品结算码','合同号','供应商名称','专柜','商品名称','商品货号','商品单价','商品总价','供应商结算金额','商品数量','商品促销优 ...

  5. 分享五:php数组操作

    一:PHP中array_merge和array相加的区别分析 1:键名是string: <?php $arr1 = array('a'=>'PHP'); $arr2 = array('a' ...

  6. Java:多线程,分别用Thread、Runnable、Callable实现线程

    并发性(concurrency)和并行性(parallel)是两个概念,并行是指在同一时刻,有多条指令在多个处理器上同时执行:并发指在同一时刻只能有一条指令执行,但多个进程指令被快速轮换执行,使得宏观 ...

  7. IServerChannelSinkProvider

    (一) Remoting框架图 这是msdn上关于Remoting客户端与服务器端进行通信的示意图.客户端与服务端的通信是通过发送消息来实现的.消息的处理是由客户端,服务端创建的一系列的通信信道来处理 ...

  8. 【Android】7.6 FrameLayout(帧布局)

    分类:C#.Android.VS2015: 创建日期:2016-02-11 一.简介 帧布局是显示多个层次图的有效手段.比如第3章介绍的百度地图就是利用帧布局来实现的,它将图层分为22级分别缓存到指定 ...

  9. 【NOI】9272 偶数个三

    题目 链接:bajdcc/ACM 描述 在所有的N位数中,有多少个数中有偶数个数字3?结果模12345.(1<=N<=10000) 样例输入 2 样例输出 73 方法一:穷举 评价:最简单 ...

  10. spark-streaming问题集锦

    报错: // :: ERROR Utils: Exception encountered py4j.Py4JException: Cannot obtain a new communication c ...