python twisted rpc json-rpc

Python Twisted JSON RPC



json-rpc (5)

Para mí esto funcionó mejor que las "bibliotecas", hablando de cliente.

TESTDATA = {''id'': 1234, ''method'': ''getbalance'', } URL = ''http://localhost:7777'' d= getPage(URL,method="POST",postdata=json.dumps(TESTDATA)) d.addBoth(lambda x :print(json.loads(x)))

¿Alguien puede recomendar algún código simple para configurar un cliente y un servidor JSON RPC simples usando retorcido?

Encontré txJSON-RPC, pero me preguntaba si alguien tenía experiencia en el uso de algunos de estos y podría recomendar algo.


Si está buscando un enfoque independiente del marco, esta biblioteca que presioné (usando mixin) podría ser útil:


txJSONRPC es genial. Lo uso y funciona. Te sugiero que lo intentes.

SERVIDOR:

from txjsonrpc.web import jsonrpc from twisted.web import server from twisted.internet import reactor class Math(jsonrpc.JSONRPC): """ An example object to be published. """ def jsonrpc_add(self, a, b): """ Return sum of arguments. """ return a + b reactor.listenTCP(7080, server.Site(Math())) reactor.run()

CLIENTE:

from twisted.internet import reactor from txjsonrpc.web.jsonrpc import Proxy def printValue(value): print "Result: %s" % str(value) def printError(error): print ''error'', error def shutDown(data): print "Shutting down reactor..." reactor.stop() proxy = Proxy(''http://127.0.0.1:7080/'') d = proxy.callRemote(''add'', 3, 5) d.addCallback(printValue).addErrback(printError).addBoth(shutDown) reactor.run()

Como bonus, os dejo alguna alternativa: amp. http://amp-protocol.net


wikipedia tiene un montón de implementaciones listadas para python: https://en.wikipedia.org/wiki/JSON-RPC#Implementations

Dicho esto, txjason siente como el mejor integrado con trenzado. Parece que soporta respuestas fuera de orden fuera de la caja, por ejemplo. La mayor parte sería portable a python3 usando seis. La parte más horrible es la validación de parámetros, que de todos modos no está expuesta en la API pública normal.


Cyclone , una implementación de servidor web asíncrono Tornado escrita con trenzado, tiene un controlador de solicitud json-rpc incorporado que utiliza el módulo python json / simplejson. Ejemplo de servidor y código de cliente está here .