Web Service特征
1、它是基于SOAP协议的,数据格式是XML
2、只支持HTTP协议
3、它不是开源的,但可以被任意一个了解XML的人使用
4、它只能部署在IIS上
Web API特征
1、这是一个简单的构建HTTP服务的新框架
2、在.net平台上Web API 是一个开源的、理想的、构建REST-ful 服务的技术
3、它可以使用HTTP的全部特点(比如URIs、request/response头,缓存,版本控制,多种内容格式)
4、它也支持MVC的特征,像路由、控制器、action、filter、模型绑定、控制反转(IOC)或依赖注入(DI),单元测试。这些可以使程序更简单、更健壮
5、它可以部署在应用程序和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用于外部服务的请求~