@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()
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()