python发布webservice接口

1.安装soaplib
下载https://github.com/soaplib/soaplib.git

cd soaplib
python setup.py install

2.服务端代码

import soaplib
from soaplib.core.service import rpc, DefinitionBase
from soaplib.core.model.primitive import String,Integer,Boolean
from soaplib.core.server import wsgi
from soaplib.core.model.clazz import Array
from soaplib.core.service import soap
from soaplib.core.model.clazz import ClassModel 


class Rules(ClassModel):
    __namespace__ = "Rules"
    username=String
    emotion=String
class HelloWorldService(DefinitionBase):
    @soap(String,Integer,_returns=Array(String))
    def say_hello(self,name,times):
        results = []
        for i in range(0,times):
            results.append('Hello, %s'%name)
        return results
    @soap(Rules,_returns=Boolean)
    def get_recommend(self,rules):
        print rules.username
        print 111
        print rules.emotion
       

        return 1

if __name__=='__main__':
    try:
        from wsgiref.simple_server import make_server
        soap_application = soaplib.core.Application([HelloWorldService], 'tns')
        wsgi_application = wsgi.Application(soap_application)
        server = make_server('localhost', 7789, wsgi_application)
        server.serve_forever()
    except ImportError:
        print "Error: example server code requires Python >= 2.5"

发布的接口即为
http://localhost:7789/?wsdl

2.安装suds客户端测试

pip install  suds-jurko

代码

from suds.client import Client
hello_client = Client('http://localhost:7789/?wsdl')
hello_client.options.cache.clear()
rules={}
rules["username"]="alle"
rules["emotion"]="1-2-3"

print rules
result = hello_client.service.get_recommend(rules)
print result

安装suds报错

Command "python setup.py egg_info" failed with error code 2 in /tmp/pip-build-maqndg/suds-jurko/

解决:

pip install --upgrade setuptools

参考网址:
https://stackoverflow.com/questions/11425106/python-pip-install-fails-invalid-command-egg-info

参考网址
官网:http://soaplib.github.io/soaplib/2_0/index.html
实例,返回一个复杂数据:http://m.jb51.net/article/43477.htm

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容