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 ...
随机推荐
- WordPress网站搬家经验总结
http://cnzhx.net/blog/move-wordpress-site-step-by-step/也许很多人都有跟我类似的经历:因为某种原因需要将自己的WordPress站点从一个空间转移 ...
- Python学习笔记014——迭代器 Iterator
1 迭代器的定义 凡是能被next()函数调用并不断返回一个值的对象均称之为迭代器(Iterator) 2 迭代器的说明 Python中的Iterator对象表示的是一个数据流,被函数next()函数 ...
- 转 虫师的selenium借助AutoIt识别上传(下载)详解
selenium借助AutoIt识别上传(下载)详解 2014-12-27 11:26 by 虫师, 755 阅读, 1 评论, 收藏, 编辑 AutoIt目前最新是v3版本,这是一个使用类似BAS ...
- AP_标准采购单付基本操作(流程)
2014-06-04 Created By BaoXinjian
- DBA_实践指南系列3_Oracle Erp R12系统克隆Clone(案例)
2013-12-03 Created By BaoXinjian
- 西邮Linux兴趣小组纳新笔试试题
下面是西邮Linux小组今年纳新的笔试试题 1. 下面这个程序的输出结果是什么? int main() { int a = (1, 2); printf(“a = %d\n”, a); return ...
- 【转】Ubuntu VI基本用法
转自:http://blog.sina.com.cn/s/blog_4f3b79d0010166ai.html 1.vi的基本概念 基本上vi可以分为三种状态,分别是命令模式(command mode ...
- 批处理学习笔记2 - 编写批处理的for循环
批处理中的for循环集成的功能比较多,可以直接对文件操作. ====================================================================== ...
- C# FUNC 应用
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Func ...
- CF 366E - Dima and Magic Guitar 最远曼哈顿距离
题目:http://codeforces.com/problemset/problem/366/E 事实上就是找 n * m 矩阵中数字 x 和 数字 y 的最远距离. 方法參照武森的论文<浅谈 ...