JSON-RPC statt XML-RPC

Aktuell bin ich wieder etwas aktiver, was die API Implementierung betrifft. Im ersten Wurf hab ich Django als XML-RPC Dispatcher benutzt aber jetzt dann durch wsgi-xmlrpc ersetzt, da ich zuviel Overhead und unnötige Abhängigkeiten vermeiden will. Als schlanken Ersatz nutze ich jetzt das Bottle Framework. Nachdem ich damit auch recht flott Validierungen via HTTP hinzaubern konnte, machte ich mich an die Implementierung einer Registrierungsmethode für neue Benutzer in XML-RPC. Nachdem der Code fertig war zum Testen, wollte es einfach nicht funktionieren und ich wusste nicht warum.

Dieser XML-RPC Request

rpc_srv.SignUp(email = "user@domain.com", password = "password")

schlug immer fehl:

TypeError: __call__() got an unexpected keyword argument 'password'

Nachlesen in der Python Doku, wie man keyword arguments bei Methoden benutzt, brachte keine Hinweise. Sah alles korrekt aus. Kann es sein, dass XML-RPC das nicht unterstützt? Als ich Google diese Frage stellte, bekam ich die Antwort. Ja, leider:

You can't do this with plain xmlrpc since it has no notion of keyword arguments.
However, you can superimpose this as a protocol on top of xmlrpc
that would always pass a list as first argument, and a dictionary as a second,
and then provide the proper support code so this becomes transparent for your usage

Dort wird zwar beschrieben, wie man sich behelfen kann durch Methoden Überschreibung etc... aber ab da hat es mir schon wieder in den Fingern gejuckt, doch lieber nach einer Alternative zu suchen. Und siehe da:

Das trifft sich gut, denn in CouchDB ist ja auch alles in JSON. Einen WSGI Adapter und Python Bibliothek, die mit den Keyword Argumenten umgehen kann gibt es auch schon. Den Code umbauen hat gerade mal 10 Minuten gedauert. Und jetzt funktioniert es auch :-)