一、什么是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概述的更多相关文章
-
ASP.NET MVC 4 (十二) Web API
Web API属于ASP.NET核心平台的一部分,它利用MVC框架的底层功能方便我们快速的开发部署WEB服务.我们可以在常规MVC应用通过添加API控制器来创建web api服务,普通MVC应用程序控 ...
-
asmx 、Web Service、Web API
asmx .Web Service.Web API asmx 是WEB服务文件 asmx.cs里有相关代码 属于B/S形式,用SOAP方式HTTP访问,用XML返回 可以返回基础类型和PUBLIC结构 ...
-
Web APi之Web Host消息处理管道(六)
前言 我们知道Web API本身是无法提供请求-响应的机制,它是通过Web Host以及Self Host的寄宿的宿主方式来提供一个请求-响应的运行环境.二者都是将请求和响应抽象成HttpRespon ...
-
ASP.NET Core Web API 开发-RESTful API实现
ASP.NET Core Web API 开发-RESTful API实现 REST 介绍: 符合REST设计风格的Web API称为RESTful API. 具象状态传输(英文:Representa ...
-
IIS 7管理API——Microsoft.Web.Administration介绍
原文:http://www.cnblogs.com/dflying/archive/2006/04/17/377276.html 本文翻译整理自Carlos Aguilar Mares的blog文章: ...
-
用HTML5、地理定位API和Web服务来开发移动应用
HTML 5 是一项让人振奋的技术,这有着充分的理由.这将会是一次技术突破,因为它可以将桌面应用程序功能带入浏览器中.除了传统浏览器外,对于移动浏览器,其潜力甚至更大.不仅如此,最流行的移动浏览器甚至 ...
-
返璞归真 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 上传文件, ...
-
ASP.NET Core的身份认证框架IdentityServer4--(2)API跟WEB端配置
API配置 可以使用ASP.NET Core Web API模板.同样,我们建议您控制端口并使用与之前一样的方法来配置Kestrel和启动配置文件.端口配置为http://localhost:5001 ...
-
go web framework gin group api 设计
假如让你来设计group api, 你该怎么设计呢? group api 和普通api的区别在于前缀不同,如果group api的版本为v1.0 那么相对应的url为/v1.0/xxx, 如果是普通a ...
-
SharePoint 2013 APP 开发示例 (六)服务端跨域访问 Web Service (REST API)
上个示例(SharePoint 2013 APP 开发示例 (五)跨域访问 Web Service (REST API))是基于JavaScript,运行在web browser内去访问REST AP ...
随机推荐
-
Python成长笔记 - 基础篇 (十二)
本节内容 ORM介绍 sqlalchemy安装 sqlalchemy基本使用 多外键关联 多对多关系 表结构设计作业 主题:学员管理系统 需求: 用户角色,讲师\学员, 用户登陆后根据角色不同,能做的 ...
-
iOS开发--Swift 基于AFNetworking 3.0的网络请求封装
Swift和OC基于AFNetworking的网络请求流程相同, 就是语法不同, 对于Swift语法不是很清楚的同学, 建议多看看API文档, 自己多多尝试. 写过OC的应该都明白每句话做什么的, 就 ...
-
递推 N矩形问题
Description 给你一个高为n ,宽为m列的网格,计算出这个网格中有多少个矩形,下图为高为2,宽为4的网格. Input 第一行输入一个t, 表示有t组数据,然后每行输入n,m,分别表示网格的 ...
-
【线段树】HDU 5493 Queue (2015 ACM/ICPC Asia Regional Hefei Online)
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5493 题目大意: N个人,每个人有一个唯一的高度h,还有一个排名r,表示它前面或后面比它高的人的个数 ...
-
base 64 编解码器
base 64 编解码 1. base64的编码都是按字符串长度,以每3个8bit的字符为一组, 2. 然后针对每组.首先获取每一个字符的ASCII编码. 3. 然后将ASCII编码转换成8bit的二 ...
-
网站开发进阶(二十三)Address already in use: JVM_Bind <;null>;:8088
Address already in use: JVM_Bind <null>:8088 注:请点击此处进行充电! 阿里云服务器又莫名其妙的宕掉!内存泄漏问题依然存在,又出现了端口占用的情 ...
-
node-fs文件系统模块
在node环境中所有与文件操作都是通过fs核心模块实现的.包括文件的创建.删除.查询以及读写和写入 在 fs 模块中,所有的方法都分为同步和异步两种实现,具有 sync 后缀的方法为同步方法,不具有 ...
-
caffe关闭建立网络的log输出
C++ google::InitGoogleLogging("XXX"); google::SetCommandLineOption("GLOG_minloglevel& ...
-
正确学习Linux系统的5个建议
摘要: 最近几年Linux系统应用越来越广泛,以至于很多人开始热衷学习Linux.但是我们都是从小都是学习windows系统长大的,从windows 98到现在的windows 10,而根据学习win ...
-
GDAL中文件的驱动及对应的文件格式(转) https://blog.csdn.net/haojknm/article/details/5851968
GDALDriver * poDriver; char *pszFormat=GetOutimgInfo(m_strInput); poDriver = GetGDALDriverManager()- ...