Web API(二):Web API概述
一、什么是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 ...
随机推荐
- 查看sqlserver的端口号[转]
查看sqlserver的端口号 背景 这几天想写一个使用java连接sqlserver的数据库连接测试程序.但是在查看数据库连接字符格式以后发现需要sqlserver数据库 服务的端口号.在安装sql ...
- Python学习笔记010——匿名函数lambda
1 语法 my_lambda = lambda arg1, arg2 : arg1 + arg2 + 1 arg1.arg2:参数 arg1 + arg2 + 1 :表达式 2 描述 匿名函数不需要r ...
- Form_通过FND_FNDFLUPL标准功能上传CSV控件(案例)
2014-06-08 Created By BaoXinjian
- Objective-C学习笔记(十八)——对象方法和类方法的声明,定义及调用
在程序设计中,函数的使用无疑大大简化了代码的编写.提高代码执行的效率.降低反复代码. 所以如今我们来具体研究一下方法. 本样例还是以People类为例. (一)代码一: (1)先在People.h中声 ...
- Python radians() 函数
描述 radians() 方法将角度转换为弧度. 语法 以下是 radians() 方法的语法: import math math.radians(x) 注意:radians()是不能直接访问的,需要 ...
- angularJS双向绑定和依赖反转
一.双向绑定: UI<-->数据 数据->UI (数据改变UI跟着变) UI->数据 (UI改变数据跟着变) 数据改变->UI改变原理: 监听数据是否改变,如果改变更新U ...
- poj2151--Check the difficulty of problems(概率dp第四弹,复杂的计算)
Check the difficulty of problems Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 5009 ...
- 教你如何写thinkphp多表查询语句
1.table()函数 thinkphp中提供了一个table()函数,具体用法参考以下语句: $list=$Demo->table('think_blog blog,think_type ty ...
- WCF教程网址
http://www.cnblogs.com/iamlilinfeng/archive/2012/09/25/2700049.html http://www.cnblogs.com/artech/ar ...
- 【转】32位和64位系统区别及int字节数
http://blog.csdn.net/zhongzhiwei/article/details/8678885 一)64位系统和32位有什么区别? 1.64bit CPU拥有更大的寻址能力,最大支持 ...