Experiences with REST

Every system I’ve ever integrated with that refers to itself as “RESTful” is not REST. It’s RPC over HTTP.

Every system I’ve ever built that I called “RESTful” is not REST. It’s RPC over HTTP.

One of those dawning, sad revelations that you get when you read a really good book on REST.

But all in all, RESTful systems are still 1000x better than working with SOAP-based web services, which always leave me feeling dirty.

About Jimmy Bogard

I'm a technical architect with Headspring in Austin, TX. I focus on DDD, distributed systems, and any other acronym-centric design/architecture/methodology. I created AutoMapper and am a co-author of the ASP.NET MVC in Action books.
This entry was posted in REST. Bookmark the permalink. Follow any comments here with the RSS feed for this post.
  • Kenny Eliasson

    +1 on feeling dirty working with SOAP.

  • So true, Jimmy.

    There are three kinds of REST developer…

    1) those who don’t yet “grok” REST and unintentionally implement a RPC/HTTP/REST hybrid system.

    2) those who *do* grok REST and deliver the perfect implementation.

    3) those who *do* grok REST but make do with the current terrible frameworks/tooling available, and ultimately produce some sort of hybrid RPC/HTTP/REST system – but of far higher quality than a Type #1 developer.

    I’m currently Type #3; most people are this type at the moment.

    Type #2 do exist but are rare.

    Sadly, Type #1 is the most common. But as is so common in this field, ignorance is bliss… I guess.

    • I can count the number of proper REST service implementations I’ve seen on one hand. Rare is an understatement when counting the #2′s, imho (I agree the lack of proper frameworks is a significant cause of this; I can say it is for myself).

  • Anonymous

    So you are saying we are using “dirty SOAP” :)

  • What is that RPC over HTTP..

    • Anonymous

      It’s also known as POX, URI tunneling etc. SOAP web service semantics, but using actual HTTP features. We’re not transferring state, but allowing RPC calls like SOAP, but just using a simple HTTP endpoint.

  • The thing about SOAP I like is being able to point a code generator at the service and be up and running in seconds. Whenever I have to deal w/ REST (or REST-ish) stuff, I end up wasting hours messing around with parsing and generating the data and classes which just feels like a waste of effort.

    • Anonymous

      Check out RestSharp: http://restsharp.org/ – it fills in that client piece for interacting with REST APIs.

  • Scott Reynolds

    How do you mix CQRS and SOAP…. always my challenge — I battle with the document based posting and the command semantics.

    • Scott reynolds

      Sorry I meant rest not soap. Commands are very behavior centric where rest seems crud semantic. Good book though really well written.

  • R T

    Did you ask yourself whether or not someone who wasn’t already familiar with the point you were trying to convey would get anything from this post?

    • Anonymous

      No, I blogged in anger over using a couple of “REST”ful APIs that were not.

      I blog from the heart man, from the heart.

      • R T

        The rapier of my wit thirsts for carnal knowledge. What semantics were violated? Be they public or private APIs? In whose name were curses made, and how could we mortals have avoided the ire of your wrathful blogging?

        Or does that cost $35.42 shipped?