REST and HTTP services as a business advantage
Justin Sheehy - Justin Sheehy - June 01, 2009The advantages of HTTP as an application protocol (not just a transport) as opposed to many other networked service models are not abstract, idealized technical advantages. They directly affect your—and your partners’—cost of doing business.
At Basho, our services integrate out of necessity with those of many kinds of partner companies, including CRM, Business Intelligence, Search, and more. We consider ourselves lucky in general when a company we’d like to partner with exposes any consistent and documented interface for this purpose.
However, when those interfaces are SOAP or another RPC-shaped system it means that each integration is a fairly major new project even when the resulting connections between applications are conceptually small. This is because you have to learn the programming model of that other service and work as though you were a developer of that service—learning their calling conventions, naming schemes, error conditions, and so on.
We recently had the pleasure of integrating with Jigsaw‘s data service. While they don’t quite match up to the ideals of REST just yet, their service is young and the interface is already far better than that of many other business-to-business integration APIs. Not only did they deliver a cleaner and easier service than expected, I suspect that they did so at lower cost than many others. How?
By using HTTP.
Even the coarsest approximation of the Web’s uniform interface gives you a much better running start than is possible with, say WSDL and SOAP. Jigsaw’s Web interface isn’t perfect (GET requests are idempotent but not safe, and a couple of status codes are incorrectly used) but it is simple and it isn’t surprising. The fact that there is already a completely interoperable client in every major programming language means that, instead of using some WSDL to generate 10,000 lines of code to then put a client on, we were able to just jump in and immediately write working client code. The resulting client code was also about 20% as long as the manually written portion of our client code in comparable services that use SOAP.
I’m not talking about ideal systems, and I’m not talking about idealistic academic goals. I’m just talking about the simple realities of how your technical choices affect the level of effort that your partners must apply in order to work with you. That simple reality has a direct and powerful effect on the bottom line.
Categories: Blogs Justin Sheehy
Comments
Thanks. Good points.
Any pointers to best practices for organizations looking to create open APIs for their applications?
I have a few organizations I would love to push towards best practices in this area.
Posted by Frank Daley on 08 Jun 2009 at 02:28The pointers are what this article is all about. By using a REST-ful API you can provide a simple interface to your data. The barrier to entry for business partners is much lower.
Simply do some research on providing a REST-ful API (URLs represent objects/nouns, access is provided using the 4 HTTP verbs). As stated in this article, even the worst REST-ful implementation is leaps and bounds ahead of a complex SOAP interface.
Posted by Chris M. Welsh on 28 Jun 2009 at 14:52
Add comment
Erlang on Twitter
» darkproger (proger): RT @metabrew: If you use vim for #erlang, you might be interested in my rebar-friendly vimerl modifications: https://t.co/dSIKOs9p
» bipthelin (Bip Thelin): haven’t seen Hotline in a while RT “@github_erlang: hotline - Browser based Hotline client in Erlang http://t.co/mF50rC7D”
» erlang (Andreas Åkre Solberg): Mine bilder fra vakre Helgeland http://t.co/WNSNhNiw i min nye fancy bildefremviser
» github_erlang (GitHub Erlang): hotline - Browser based Hotline client in Erlang http://t.co/iLT9GmOG
» oki_dimas (Oki dimas mahendra ): Km wuching “@HammyDC: Bkan.. Aq dewa erlang.. RT @oki_dimas Bukan siluman “@HammyDC: Aq jdi yoko klo gtu..”
» tichise (Takuya Ichise): RT @AntiBayes: 【言語別業務時の服装】
・Clojure:全裸
・Scheme:全裸
・Gauche:全裸
・Prolog:全裸
・Scala:全裸
・Erlang:全裸
・C++:全裸
» mshiba64 (Masami Shibatani): ということで、ErlangのBit Syntaxに突入。language for distributed and concurrent programだからね。
» despenjahatdos (Jon champion): Eits jangan salah begini2 saya titisan dewa erlang RT @yolapitalokaa: Yg ngepost twit kyknya jg lg galau drtd ... http://t.co/QfCyVSIl
» erlangtriaji (erlang triaji ): Sini sun ahahaha RT @Encays: Udah udah, lo berduaan aja RT @revianh: Kepooo! RT @erlangtriaji: Hadir RT @Encays: Udah, sama erlang aj
» Encays (antarif cahyadi): Menjepit RT @erlangtriaji: Tegang! RT @revianh: Kepooo! RT @erlangtriaji: Hadir RT @Encays: Udah, sama erlang aja RT @revianh
Statistics
Number of aggregated posts: 10454
Number of comments: 1392
Most recent article: January 31, 2012
Latest comments
» nobelboy on OpaDo Data Storage: Feel free to add some Qs here or contact me offline, and I will see what I can work into…
» darrensy on The Twisted Matrix: This has been a great idea you have shared. covers for kindle
» jony on Principle Software Engineer at LonoCloud (Full-time): That provides will become a internet marketer of little kinds of expert methods developers developing strategy using Erlang/OTP. There will…