Yahoo has released its web services, and they’re pretty darn spiffy. You can use the API to search the Web, images, video, and news, or to do a local search. Of interest to me, as a developer of web services, is the fact that they’ve gone with a pure REST approach. URLs are “function” names, you pass in the parameters as HTTP parameters, and the results are returned via XML.

They also address a problem that I’ve run into — service versioning. What happens when you change the output of an API call? I solved it by adding an additional parameter to the requests named “version,” which worked the one time I had to do it. Yahoo builds it into the URL itself. That seems like a cleaner approach to me. I’ll have to think about how to implement that in a J2EE/Spring environment, but I think that the next time I need to update my version number, it’s the approach I’ll take.

Also worth noting is that they provide examples in Perl, PHP, Python, Java, and JavaScript. No ASP or .NET examples. I’m finding that the number one platform people are using to access the Web service I work on is ASP (not yet ASP.NET). The primary customer for our product is small to medium sized online retailers, and ASP seems to be pervasive in that space. I’d guess that the primary customer for Yahoo is geeks who work in the LAMP world.

Update: Sam Ruby notices some internationalization-related issues with the API.