WebService与WebApi的区别

WebService的特征:

1 基于SOAP协议的,数据格式为XML
2 只支持HTTP协议
3 不是开源的,但可以被任意一个了解XML的人使用
4 只能部署在IIS上

SOAP :简单对象访问协议Simple Object Access Protocol,传输层 ,,XML传输消息
WSDL:Web Server Description Language :Web Server描述语言(元数据),给客户端生成代理类的一个描述信息
UDDI :提供了一组基于标准的规范用于描述和发现服务,统一描述,发现和集成(UDDI-Universal Descript,Discovery,Integration),提供注册和查找服务
客户端在UDDI注册表(Registry)查找服务,取得服务的WSDL描述,通过SOAP调用服务。

WebAPI 特征:

1 是简单的 构建HTTP服务的新框架
2 在.net平台上WebApi是一个开源的,理想的,构建REST-FUL服务的技术
3 不想WCF REST Server 它可以使用HTTP的全部特点(URI,request/response头,缓存,版本控制,多种内容格式)
4 支持MVC的特征。像路由、控制器、action、filter、模型绑定、控制反转(IOC)或依赖注入(DI),单元测试。
4 可以部署在IIS和应用程序上
6 轻量级框架,并且对限制带宽的设备,比如智能手机等支持的很好
7、Response可以被Web API的MediaTypeFormatter转换成Json、XML 或者任何你想转换的格式。
8、Web API非常适合构建移动客户端服务

以下情况可以考虑用Web API

1、 需要Web Service但是不需要SOAP
2、 需要在已有的WCF服务基础上建立non-soap-based http服务
3、 只想发布一些简单的Http服务,不想使用相对复杂的WCF配置
4、 发布的服务可能会被带宽受限的设备访问
5、 希望使用开源框架,关键时候可以自己调试或者自定义一下框架
6、如果服务需要在http协议上,并且希望利用http协议的各种功能
7、如果服务需要被各种客户端(特别是移动客户端)调用

webapi多用于基于http请求的服务应用,比如说移动服务端或者需要提供第三方API 服务的场景下
webservice也可以应用于webapi所在的场景,一般是做为内部服务的使用,好比如果一个系统用wcf/webservice作为内部子系统间的服务通信,而webapi用于外部服务的请求。

你可能感兴趣的:(WebService与WebApi的区别)