This is a single archived entry from Stefan Tilkov’s blog. For more up-to-date content, check out my author page at INNOQ, which has more information about me and also contains a list of published talks, podcasts, and articles. Or you can check out the full archive.

Yahoo! Mail API Madness

Stefan Tilkov,

Sam Ruby quotes from the new Yahoo! Mail API documentation:

Use WSDL to construct your SOAP client. Even though a service endpoint URL is indicated in the WSDL, you must provide a location URL to your SOAP toolkit. This is necessary to transmit the application ID and the WSSID. In addition, you must set the cookie header containing the cookie that was returned with the WSSID when you credentialed the user in the previous step.

Paul Downey has another quote:

Not all languages that support SOAP are compatible with the Yahoo! Mail Web Service, but all languages that support JSON-RPC are.

First of all, there’s support for the non-SOAP (JSON-RPC) version in more languages, secondly, the way SOAP is used here is so exotic it’s pretty unlikely any client developer will figure out how to use it anyway.

Maybe even more absurd is a fact noted by Dare Obasanjo:

[A]lthough Yahoo! provides SOAP and RESTful JSON web services for accessing one’s mail, I still can’t get POP access to my Yahoo! mail without shelling out $20/year.

OK, I know, I know, company firewalls usually block POP and IMAP traffic. But still, shouldn’t the first protocol used for exposing a mail service actually be a mail protocol?

P.S. I’m continually amazed at the English language’s ability to “verb” nouns. “Credentialed”? Are you kidding?

On March 29, 2007 8:16 PM, Ryan Kennedy said:

Stefan, the mail web service is quite a bit richer than what you can get from POP and IMAP. POP is pretty crippled and IMAP is inherently expensive to run, being a stateful protocol. Web services, on the other hand, can be quite lightweight and allow us to add several capabilities that aren’t present in either POP or IMAP (sending, advanced searching, mailbox preference controls, external mail fetching, etc).

Ryan Kennedy Yahoo! Mail Web Service

On March 29, 2007 8:24 PM, Stefan Tilkov said:

Thanks for taking the time to reply. I understand the advantages of a Web services protocol (in the broadest sense) over POP and IMAP, but that doesn’t change the fact that both are supported by a gazillion of clients already. But I’m more interested in understanding why you exposed a SOAP API like this instead of sticking with a REST API (which, at least at a first look, the JSON RPC doesn’t seem to be).

On March 29, 2007 11:04 PM, Ryan Kennedy said:

No, we don’t have a REST API. You have to understand a little more of what’s going on internally. We acquired Oddpost and had to mate them to the Yahoo! Mail backend. They were already talking to their SOAP service, so the easiest path was to implement SOAP for them. We did that and eventually added JSON-RPC support.

This newly offered web service is THAT web service, which is why we have an RPC slant. That’s not to say we won’t offer REST, it’s just that RPC is where the demand has been. I hope that people who prefer REST will speak up and let us know that they’d be willing to write apps on the web service if we offered a REST interface. That’s something I can take back to our managers to convince them to let me build it.

Ryan Kennedy Yahoo! Mail Web Service

On March 29, 2007 11:07 PM, Stefan Tilkov said:

Perfectly sensible — thanks.

On March 30, 2007 1:48 AM, Dan Diephouse said:

There is a lovely word for that… “verbify”. As in “Joe verbified the word credential.” :-)

On March 30, 2007 2:13 AM, karl said:

Time to reinvent Mail using REST

On April 1, 2007 7:53 PM, Jim Webber said:

British English tends not to turn nouns into verbs - it sounds like gibberish. American (as I understand it technically a dialect of English) however is much more tolerant of nouns crossing over. English seems to be a good host language for DSLs (like Yanklish, Hinglish, Singlish, Chinglish, etc)…