[Baypiggies] Do you think this would be cool open source? / web service discovery

Drew Perttula drewp at bigasterisk.com
Fri May 8 05:41:24 CEST 2009


nar wrote:
> -- BUT, the ability to point a SOAP proxy object at some WSDL and have 
> it automatically understand what functions are available to it and their 
> prototypes makes it so much more attractive to third party developers. 
> In terms of security, there's a variety of strategies you can utilize 
> that are part of the protocol rather than tacking them on at the end by 
> hand.

I've never experienced this 'automatically understand' phenomenon, so I 
can't say it's useless, but it sounds like the same thing we have in 
python. My python program can load any library and inspect the functions 
and classes that are available, and it could start calling them.

But I have never written a program that does this; I read the docs 
instead. My program isn't trying to write itself; I'm writing it. In my 
experience, it's mostly tools like pydoc/epydoc/etc are benefiting from 
that part of python's introspection [1]. The point is, this is how I use 
REST web services too (e.g. twitter): I read the docs, and I don't care 
what format they're in as long as it's human readable. I have never felt 
like there's a "discovery" feature that's missing. When I'm 
scraping^W^Wthere aren't docs, I follow whatever examples I can find. 
This is how a ton of python code gets written, too.

Anyway, there seems to be some work on an equivalent description format 
for URL-based web services called WADL. To see something live, make an 
arbitrary search on google, grab the resulting URL, paste it into 
http://tomayac.de/rest-describe/latest/RestDescribe.html# , and click 
'Analyze URI'. Among other things, you could now pick 'generate code' on 
the right and click python. The result will be a python class called 
Search whose __init__ takes the arguments that the google search used. 
Obviously if google published a more-documented WADL description, you'd 
get more detail than just the current parameters and guesses about their 
types.




[1] louie dispatcher is an interesting exception (among the libraries 
that I use). It adjusts its set of parameters based on what the function 
that's receiving the signal will accept.


More information about the Baypiggies mailing list