On Tue, Jun 26, 2012 at 02:09:59PM -0500, Laurens Van Houtven wrote: > Hi, > > As some of you may know I am working on a JSON-RPC <-> AMP bridge to > consume AMP services from browsers. WIP: http://lvh.github.com/amphibian/ > > I've hit a failing integration test. I know what the issue is -- I don't > know how to resolve it. > > I attempted to write the proxy without any knowledge of the remote > commands.
If my "proxy" you mean in the style of Python's built-in XMLRPC Proxy class then I think that is the wrong approach for AMP - you have to have Command signatures available ahead of time for a BINARY protocol. Guessing just isn't any fun or even useful at all. Static typing on the wire - yess. > It assumes that the JSON provided satisfies the remote signature. > If it doesn't -- that's okay, we'll get a failure back from the AMP server. > So, I use callRemoteString and manually serialize by typechecking. Although > that works for sending, the result I get back from callRemoteString is also > in wire format. Because I don't know the signature, I have no idea if the > sender meant 4, "4", u"4"... Sure. > On IRC: > dreid pointed out that I really shouldn't need a language-specific > implementation of a class for this to work > teratorn pointed out that there is a JSON schema ticket for AMP. Perhaps > there should also be a "DiscoverSchema" command? I've been calling that "Service Discovery" or "Route Discovery" for a while. And yes, we should have *something* allowing AMP to complete effectively in the "webservice" space (whatever that is). The ticket for an AMP Schema is #5532 (http://twistedmatrix.com/trac/ticket/5532) I would suggest extending the existing proposal with route information. I'm a little bit unclear on what an AMP route is, but as I understand it, it is basically a set of AMP Commands that are available at some known location - useful for segregating functionality (pre-login, post-login, user, admin, etc). Glyph, is that right? There is some code from Divmod lying around somewhere that needs to be looked at. There is a ticket for AMP URLs that include route paths. #5548 (http://twistedmatrix.com/trac/ticket/5548) This would be a great area for someone to come in and try and connect these disparate threads together! -- -E _______________________________________________ Twisted-Python mailing list [email protected] http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python
