您的位置:首页 > 编程语言

利用soaplib搭建webservice详细步骤和实例代码

2017-07-11 20:12 751 查看
要用python进行webservice开发,还需要一些库:

lxml :

命令行下 sudo easy_install lxml 就能安装

pytz :

 命令行下 sudo easy_install pytz 就能安装

Twisted :

 命令行下 sudo easy_install
Twisted 就能安装

soaplib:

进行webservice开发必须要用的库,可以在https://github.com/volador/soaplib拿到,注意要先安装上面两个插件再安装这个,因为这个依赖于上面两个插件,把zip拿下来后解压,sudo python setup.py install 就能安装了。

 

复制代码代码如下:

Soaplib is an easy to use python library for publishing soap web services using WSDL 1.1 standard, and answering SOAP 1.1 requests. With a very small amount of code, soaplib allows you to write a useful web service and deploy it as a WSGI application.

 

soaplib是python的soap框架,可以用来建立webservice.soaplib这样在这里下载:https://github.com/volador/soaplib

装好soaplib后新建一个test.py,建立一个webservice,实现返回两个整数相加的和。代码如下:

 

复制代码代码如下:

# -*- coding: cp936 -*-

import soaplib

from soaplib.core.util.wsgi_wrapper import run_twisted #发布服务

from soaplib.core.server import wsgi

from soaplib.core.service import DefinitionBase  #所有服务类必须继承该类

from soaplib.core.service import soap  #声明注解

from soaplib.core.model.clazz import Array #声明要使用的类型

from soaplib.core.model.clazz import ClassModel  #若服务返回类,该返回类必须是该类的子类

from soaplib.core.model.primitive import Integer,String

class C_ProbeCdrModel(ClassModel):

        __namespace__ = "C_ProbeCdrModel"

        Name=String

        Id=Integer

class AdditionService(DefinitionBase):  #this is a web service      

        @soap(Integer,Integer,_returns=String)

        def addition(self,a,b):

                return str(a)+'+'+str(b)+'='+str(a+b)       

        @soap(_returns=Array(String))

        def GetCdrArray(self):

                L_Result=["1","2","3"]

                return L_Result

        @soap(_returns=C_ProbeCdrModel)

        def GetCdr(self): #返回的是一个类,该类必须是ClassModel的子类,该类已经在上面定义

                L_Model=C_ProbeCdrModel()

                L_Model.Name=L_Model.Name

                L_Model.Id=L_Model.Id

                return L_Model    

        

if __name__=='__main__':  #发布服务       

        try:

                print '服务已经开启'

                from wsgiref.simple_server import make_server

           
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐