WebService、WCF和WebApi的区别和特点
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WebService、WCF和WebApi的区别和特点相关的知识,希望对你有一定的参考价值。
参考技术A Web Service :Web Service服务通常被定义为一组模块化的API,它们可以通过网络进行调用,来执行远程系统的请求服务
1.)它是基于SOAP协议的,数据格式是XML
2.)只支持HTTP协议
3.)它不是开源的,但可以被任何一个了解XML的人使用
4.)它只能部署到IIS上
WCF :是由微软开发的一系列支持数据通信的应用程序框架,整合了原有的windows通讯的 .net Remoting,WebService,Socket的机制,并融合有HTTP和FTP的相关技术
1.)它也是基于SOAP的,数据格式是XML
2.)它是Web Service的进化版,可以支持各种各样的协议,像TCP,HTTP,HTTPS等
3.)WCF配置较为繁琐
4.)它不是开源的,但可以被任意一个了解XML的人使用
5.)它可以部署到应用程序中或IIS及Windows服务中
Web Api :与WCF REST Service不同在于,Web API利用Http协议的各个方面来表达服务
1.)在.net平台上Web Api是一个开源的、理想的、构建REST-ful服务的技术
2.)它可以使用HTTP的全部特点,比如URIs、request/response头,缓存,版本控制,多种内容格式
3.)它也支持MVC的特征,像路由、控制器、action、filter、模型绑定、控制反转(IOC)或依赖注入(DI),单元测试
4.)它可以部署在应用程序和IIS上
5.)这是一个轻量级的框架,并且对限制带宽的设备,比如智能手机等支持的很好
6.)Response可以被Web API的MediaTypeFormatter转换成Json、XML 等格式
python webservice和wsgi的区别
参考技术A 废话不多说,直接上代码 ,server.py#!/usr/bin/python
from soaplib.service import soapmethod
from soaplib.serializers.primitive import String, Integer, Array
from soaplib.wsgi_soap import SimpleWSGISoapApp
class HelloWorldService(SimpleWSGISoapApp):
@soapmethod(String, _returns=String)
def says(self,name):
return name
def make_client():
from soaplib.client import make_service_client
client = make_service_client('http://192.168.1.87:17889', HelloWorldService()) (注1)
return client
if __name__=='__main__':
try:
import flup.server.fcgi as flups
#这里的HelloWorldService后面必须带括号,不然会出错
#flups.WSGIServer(HelloWorldService(), multithreaded=True, multiprocess=False, bindAddress=('127.0.0.1', 17900)).run() (注2)
flups.WSGIServer(HelloWorldService()).run() (注3)
except ImportError:
print "Error: example server code requires Python >= 2.5"
注1: 这里的17889是nginx对外公布的端口,注意和下边的 17900端口的区别
如果不想用fastcgi的形式运行的话,那么就用注2 的那行代码,并且直接在命令行里面输入:python server.py(这里的17900监听的nginx,它只接受nginx传过来的参数,外部无法直接访问)
而如果要用fastcgi的话,那么就用注3的那行代码,并且在命令行输入 :
spawn-fcgi -f /data/www/server.py -a 127.0.0.1 -p 17900 -u www -F 2 (spawn-fcgi的用法参照 nginx上用fastcgi配置python环境(二))
到这一步以后 ,我们就可以运行客户端代码 client.py
#!/usr/bin/python
from server import make_client
a = make_client()
print a.says('hello,world')
直接python client.py,就可以得到 hello,world 的字样
以上是关于WebService、WCF和WebApi的区别和特点的主要内容,如果未能解决你的问题,请参考以下文章