wsme/examples/demo/demo.py
Christophe de Vienne 843c6a3d0f Move the protocols to a dedicated module, and their activation more explicit
--HG--
rename : wsme/restjson.py => wsme/protocols/restjson.py
rename : wsme/restxml.py => wsme/protocols/restxml.py
rename : wsme/soap.py => wsme/protocols/soap.py
rename : wsme/templates/__init__.py => wsme/protocols/templates/__init__.py
rename : wsme/templates/fault.html => wsme/protocols/templates/fault.html
rename : wsme/templates/soap.html => wsme/protocols/templates/soap.html
rename : wsme/templates/wsdl.html => wsme/protocols/templates/wsdl.html
2011-10-01 20:16:57 +02:00

56 lines
1.0 KiB
Python

# coding=utf8
"""
A mini-demo of what wsme can do.
To run it::
python setup.py develop
Then::
paster serve demo.cfg
"""
from webob.dec import wsgify
from wsme import *
from wsme.protocols import restxml, restjson, soap
import logging
class Person(object):
id = int
firstname = unicode
lastname = unicode
class DemoRoot(WSRoot):
@expose(int)
@validate(int, int)
def multiply(self, a, b):
return a * b
@expose(unicode)
def helloworld(self):
return u"こんにちは世界 (<- Hello World in Japanese !)"
@expose(Person)
def getperson(self):
p = Person()
p.id = 12
p.firstname = u'Ross'
p.lastname = u'Geler'
return p
def app_factory(global_config, **local_conf):
soap = wsme.soap.SoapProtocol(
tns='http://example.com/demo',
typenamespace='http://example.com/demo/types',
baseURL='http://127.0.0.1:8989/',
)
return wsgify(DemoRoot([soap])._handle_request)
logging.basicConfig(level=logging.DEBUG)