示例#1
0
    @webservice(_params=Message, _returns=str)
    def save(self, msg):
        global repo
        repo[msg.doc.number] = msg.doc
        return 'Save document number : %d' % msg.doc.number

    @webservice(_params=int, _returns=Message)
    def find(self, num):
        global repo
        response = Message()
        try:
            doc = Document()
            d = repo[num]
            doc.number = d.number
            doc.theme = d.theme
            doc.author = d.author
            doc.text = d.text
            doc.created = d.created
            response.doc = doc
            response.msg = 'OK'
        except:
            response.doc = Document()
            response.msg = 'Document number %d dont exist' % num
        return response


if __name__ == '__main__':
    service = [('RepositoryService', Repository)]
    app = webservices.WebService(service).listen(8080)
    tornado.ioloop.IOLoop.instance().start()
		return length

class DivService(soaphandler.SoapHandler):
	""" Service that provides the division operation of two float numbers """
	@webservice(_params=[xmltypes.Float,xmltypes.Float],_returns=xmltypes.Float)
	def div(self, a, b):
		result = a/b
		return result

class FibonacciService(soaphandler.SoapHandler):
	""" Service that provides Fibonacci numbers """
	@webservice(_params=xmltypes.Integer,_returns=xmltypes.Array(xmltypes.Integer))
	def fib(self,n):
		a, b = 0, 1
		result = []
		while b < n:
			result.append(b)
			a, b = b, a + b
		return result

if __name__ == '__main__':
  	service = [('EchoService',EchoService),
        	   ('EchoTargetnsService', EchoTargetnsService),
        	   ('CountService',CountService),
             	   ('DivService',DivService),
             	   ('FibonacciService',FibonacciService)]
  	app = webservices.WebService(service)
  	ws  = tornado.httpserver.HTTPServer(app)
  	ws.listen(8080)
  	tornado.ioloop.IOLoop.instance().start()
示例#3
0
class Pessoa(complextypes.ComplexType):
    nome = str
    idade = int

class MainHandler(soaphandler.SoapHandler):

    @webservice(_params=[int, int], _returns=int)
    def soma(self, a, b):
        return a+b

    @webservice(_params=Pessoa, _returns=str)
    def imprimePessoa(self, pessoa):
        return "%s - %d"%(pessoa.nome,pessoa.idade)

    @webservice(_params=[str, int], _returns=Pessoa)
    def getPessoa(self, nome, idade):
        pessoa = Pessoa()
        pessoa.nome = nome
        pessoa.idade = idade
        return pessoa

    


if __name__ == '__main__':
    application = [("Math", MainHandler)]
    ws = webservices.WebService(application)
    http_server = tornado.httpserver.HTTPServer(ws)
    http_server.listen(8080)
    tornado.ioloop.IOLoop.instance().start()