Web Services Made Easy

Web Service Made Easy (WSME) is a very easy way to implement webservices in your python web application, and to add strong type checking to your favorite REST library/framework, as well as additional protocols.

It is originally a rewrite of TGWebServices with focus on extensibility, framework-independance and better type handling.

How Easy ?

from wsme import WSRoot, expose, validate

class MyService(WSRoot):
    def hello(self, who=u'World'):
        return u"Hello {0} !".format(who)

With this published at the /ws path of your application, you can access your hello function in various protocols:

URL Returns
http://<server>/ws/hello.json?who=you "Hello you !"
http://<server>/ws/hello.xml <result>Hello World !</result>
http://<server>/ws/api.wsdl A WSDL description for any SOAP client.

Main features

  • Very simple API.
  • Supports user-defined simple and complex types.
  • Multi-protocol : REST+Json, REST+XML, SOAP, ExtDirect and more to come.
  • Extensible : easy to add more protocols or more base types.
  • Framework independance : adapters are provided to easily integrate your API in any web framework, for example a wsgi container, Pecan, TurboGears, cornice...
  • Very few runtime dependencies: webob, simplegeneric (+ Genshi if you use SOAP).
  • Integration in Sphinx for making clean documentation with wsmeext.sphinxext.


easy_install WSME


Getting Help