It’s just data

Works Now

Randy Charles Morin: The above is an example of a REST application. It’s easy and works reliably for at least a few hours.

This week, I had my car serviced.  The air conditioner wasn’t working, and let me tell you that air conditioning is important during the summer in North Carolina.  Fixing it wasn’t cheap.

Of course, I could have chosen to replace my car with one that breaks down less often.  Generally such cars cost even more to repair.

There is a large market for reasonably priced cars, particularly ones that can be readily serviced.


It’s a shame we aren’t talking about cars then.

Posted by anon at

Imagine if your car used Web services that required an upgrade every time Yahoo! changed their layout engine. That car would have to be reasonably priced and I’m sure lots of people would buy it too. In fact, I know a lot of people would buy it. They already do ;)

Mind you, if I were the manufacturer and I had a maintenance contract, then I’d be happy.

Posted by Randy Charles Morin at

You know, there are few things more frustrating than to be on the phone with an important client, about ready to clinch the deal, just to have the connection drop.

I hear that there are these things call land lines which actually involve cords.  Cords require more up front planning, and tend to anchor the phone to a single location, but do make connections more reliable.

I imagine that more and more people who actually care about making calls (after all, what else do you use cell phones for?) will drop their cell phone contracts and turn instead to these land lines.

Except, perhaps, in the US.

Posted by Sam Ruby at

This week, I had a Web Services experience. I was tasked with integrating with some 3rd Party vendor’s SOAP API for adding people mailing lists. List manager software. Ooooh, fun.

After downloading 100 MB of libraries and generating 36 classes from their WSDL file, I got it going pretty quickly, and everything was strongly typed and Just Worked. Then, the problems started happening. Axis started grumbling about MalformedURLExceptions. Hmmm. Where in my 36 classes and 100 MB of library code was this occuring? I had only written 10 or 20 lines of code so far.

Well, eventually I had to get out Ethereal and watch it. Turned out the vendor’s server was intermittantly redirecting my requests, but sending a relative URL in the location header, which made Axis choke. But, at least I could see where they were trying to redirect me to. Ah, it was an HTML page telling me I didn’t have access to some list I didn’t try to manipulate. That’s right, every single list on the machine has the same URI, and authentication failures are handled with redirects. So, the server intermittantly accusing me of ACL violations, while all of my requests were identical.

I dutifully sent the Ethereal dumps to their engineer, told my boss about the problem, and wondered how long it would have taken using Python and an XHTML microformat.

Posted by Robert Sayre at

Robert,

“It’s easy and works reliably for at least a few hours.”

Posted by Randy Charles Morin at

Randy, I’m not saying I should have used a web site intended for browser traffic. But if the data had been XHTML or RSS or Atom or something exposed at distinct URIs over HTTP, it would have taken a lot less time. Note that all of my problems stemmed from SOAP’s use of HTTP as a transport, rather than an application protocol. Proper use of HTTP would have avoided several bugs in the server’s SOAP application code, and had fewer dependencies.

Posted by Robert Sayre at

Randy, aren’t you confusing screen-scraping with REST?

The reason your example is fragile is because you’ve assumed an interface that Microsoft haven’t acknowledged as stable, not because it’s REST.

Posted by Jim at

Jim, I didn’t provide the example. It was provided for me. But I agree not all forms of REST involve screen-scraping.

Robert, same answer as Jim, but also the problem you described was not a fault of SOAP, but rather a bad implementation of SOAP, a.k.a. a bug.

Posted by Randy Charles Morin at

Something I ran into last week for the first time, selected for no other reason other than I think it’s representative (and it looks like a good project in terms of what it does - not meant as a witch hunt);

sux0r: [link]

“sux0r - Bayesian RSS. A multi-user RSS aggregator with multi-category Bayesian filtering capabilities”

It’s HTTP client is here: [link]

The total HTTP awareness in there is about 1%. They’ve even gone so far as to implement their own caching mechanism, with zero reference to HTTP.

You’d think someone able to understand Baysean filters could manage a conditional GET, at least.

What’s the market for cars which are kind to the environment?

Posted by Harry Fuecks at

It’s hot here in Italy in July too. Like many people in this part of the world we rely on an unsophisticated, inexpensive but relatively reliable form of air conditioning known locally as “finestre”.

A comparable RESTful application might be doing a GET on “http://www.kbcafe.com/juice/?guid=20050722142018”

Posted by Danny at

Robert,
Here’s the same problem you describe with SOAP, but with REST.

[link]

Posted by Randy Charles Morin at

Every time I search for sux0r I end up on this page.

Just to let everyone know that conditional GET has been in sux0r since version 1.4 (currently at 1.5 as I type this)

[link]

Thanks.

Posted by Dac Chartrand at

Add your comment