Web API(二):Web API概述

news/2024/7/8 1:50:25

一、什么是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.0ASP.NET 4VS 2010
Web API 2.0.NET Framework 4.5ASP.NET 5VS 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 APIWCF
开源,支持.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。

 


http://www.niftyadmin.cn/n/4608919.html

相关文章

C++进阶----继承

C进阶----继承1)继承①继承父类成员访问方式的变化②父子类赋值转换③隐藏(重定义)④子类的4个默认成员函数(const取地址略)子类构造函数子类拷贝构造子类赋值重载子类析构函数⑤友元⑥静态成员⑦菱形继承⑧虚继承(virtual)⑨组合1)继承 概念: 继承机制是面向对象程…

C++进阶----多态

C进阶----多态2)多态①多态实现虚函数重写Ⅰ.特例1--协变Ⅱ.特例2--析构函数重写override final重载 / 重写 / 隐藏②抽象类(纯虚函数)③虚函数表④其他虚函数表单继承虚函数表(vs省略的派生类虚函数表内容)多继承虚函…

TCP/IP 中的OSI分层模型详解

一 连接人与人的计算机网络 计算机网络最初的目的是连续一个个独立的计算机, 使他们组成一个个更强有力的计算环境。简而言之,就是为了提高生产力。从批处理时代到计算机网络时代, 毋庸置疑,都体现了这一目的。然而,现…

iscroll在谷歌浏览器中bug

https://segmentfault.com/q/1010000008489619 iscroll 在安卓app嵌套html页面时,导致列表页滑动不起来,并且在chorme浏览器中使用手机模式,也滑动不起来, 在scroll插件的IScroll函数最后增加 document.addEventListener(touchmov…

unity3d入门之添加背景音乐

我使用的是unity3d 4.6 在添加音频之前,你的电脑里要有音频,可以随便下载一首,这里我只讲怎么实现功能, 下载的音频最好放在英文目录下,并且你要记得路径,这样才可以右击asset然后import你想要的音频。 1、…

数据结构----搜索二叉树(mark一下)

搜索二叉树迭代增删查改递归增删查改迭代增删查改 其他略,重点是删除思路 删除分三种情况: 待删除的节点左子树为空 特殊情况:被删的是根节点待删除的节点右子树为空 同上类似(略)待删除的节点左右子树都不为空 替代法…

CentOS 7搭建SVN服务器

2019独角兽企业重金招聘Python工程师标准>>> 安装步骤如下: 1、yum install subversion 2、查看安装版本 svnserve --version 3、创建SVN版本库目录 mkdir -p /var/svn/svnrepos 4、创建版本库 svnadmin create /var/svn/svnrepos 执行了这个命令之后…

Java的类型擦除

为什么80%的码农都做不了架构师?>>> 泛型,即“参数化类型”。 创建集合时就指定集合元素的类型,该集合只能保存其指定类型的元素,避免使用强制类型转换。 Java编译器生成的字节码是不包涵泛型信息的,泛型类…