Questioning the Google API

Google has recently released a SOAP API. Although there is widespread rejoicing at the existence of such a tool, some "Google watchers" are disturbed that this new API is in some ways less functional then the HTTP API that Google made private several months ago. This page is intended to unify the strands of the discussion. Here are the major ones:

The Reaction

Here are some other Google SOAP versus HTTP-related reactions around the Web.

Please report more!

Quotes

Joe English:

The old [http] API was actually easier to use.

Leigh Dodds:

SOAP adds nothing but complexity in this instance. Let's have a simple, linkable HTTP interface.

Dare Obasanjo

I'm terribly unimpressed by the Google API. I hope this isn't what people consider the point of SOAP and web services because if so then they are fooling themselves greatly.

Michael Champion

I'm glad that this Google thing came up; it's such a pure example of how wrongheaded SOAP RPC is for many common things, and such obvious evidence of groupthink (or non-think) by the people who think they "have to learn SOAP".

More Quotes

Code

  1. A WSDL definition that uses HTTP instead of SOAP -- includes hacks to be 100% .NET Framework compatible.
  2. An XSLT stylesheet that strips SOAP crud out of doGoogleSearchResponse mesages.
  3. A Series of Python CGIs that gateway HTTP calls to SOAP calls: including .NET Framework workarounds.

Once you've installed this stuff and fixed up all of the paths (it will take some tweaking!), you can access Google as easily as:

import urllib

url ="http://machine_name/cgi-bin/cachedpage.py?" 
params = {"key":(your key),
        "url":"http://www.prescod.net/"}

print urllib.urlopen( url+
        urllib.urlencode(params)).read()

Or:

<p>Get cached page:</p>
<form method="GET" action="http://machine_name/cgi-bin/cachedpage.py">
Key: <input name="key">
Url: <input name="url">
<input type="submit">
</form>

Or:

wget http://machine_name/cgi-bin/search.py?q=Paul+Prescod