IBM i Webservices Primer – SOAP or REST?

IBM i

Jul 14

AS400 or iSeries webservices – Primer

If you are reading this it’s probably because you are researching webservices, perhaps looking for an IBM i Webservices Primer and googled something like “what is the difference between SOAP and REST on IBM i webservices – please help me I am going insane“? http://bfy.tw/9ON0

Dont worry – help is at hand. But you might still be insane!

Simple Object Access Protocol (SOAP) and Representational State Transfer (REST) are two different, but similar, ways of talking to Web services out there in Internet Land.

What is SOAP?

SOAP is the long established and much used standard for webservices. It communicates using XML and was originally designed by Microsoft. If in doubt, SOAP is an easy place to start when looking at webservices, but bear in mind that older does not necessarily mean better.

Simply put, SOAP uses XML and a WSDL specification to handle it’s conversations. When Microsoft originally created the SOAP protocol it was to replace older technologies that didn’t understand the Internet — things like Distributed Component Object Model (DCOM) and Common Object Request Broker Architecture (CORBA). Older technologies use binary messaging to talk to each other but building a layer between applications talking with XML messaging lets different systems easily communicate over the internet.

What is REST?

REST is the new kid on the block. REST was created to improve on areas that SOAP is a little “clunky”. I like REST because it has some cool features that SOAP doesnt offer (like JSON, CSV interfaces for example) but I’ve also found that SOAP can be easier to use because it doesnt have these options. Saying that, REST is quicker to code with because it doesnt have all the large cumbersome requirements of building long XML strings of data. REST communications are shorter and easier to code than SOAP (arguably).

IBM i Webservices PrimerREST provides a lighter weight alternative. Instead of using XML to make a request, REST relies on a simple URL in many cases. In some situations you must provide additional information in special ways, but most Web services using REST rely exclusively on obtaining the needed information using the URL approach. REST can use four different HTTP 1.1 verbs (GET, POST, PUT, and DELETE) to perform tasks. Unlike SOAP, REST doesn’t have to use XML to provide the response. You can find REST-based Web services that output the data in Command Separated Value (CSV), JavaScript Object Notation (JSON) and Really Simple Syndication (RSS). The point is that you can obtain the output you need in a form that’s easy to parse within the language you need for your application.

If SOAP is more verbose than REST – so why do I say it can be easier to use?

Because the wonderful IBM i Power System has a great integrated webserver (commonly referred to as the #IWS) which handles all the webservice XML & JSON conversions for us… but more on that later.

Should I use REST or SOAP?

Hmmm – this is the six four thousand dollar question.

SOAP is the established player in the world of Web service internet access.

  • More verbose than REST but XML is easy for humans (aka programmers to read)
  • Language, platform, and transport independent (REST requires use of HTTP)
  • SOAP can be used in batch style environments because it uses XML format and not point-to-point
  • The WSDL offers nice error handling and data validation before the XML data even gets to your webservice program
  • XML is easy to use with RPG programs (a big bonus for us RPG ILE Programmers)

After saying all that – REST is easier to use because of it’s short form and it might require less programming work.

  • REST has a smaller learning curve than SOAP (JSON is just as easy as XML really)
  • It’s smaller so its faster (SOAP uses XML for messages, REST uses JSON which is a less-verbose message formats)
  • a more modern standard that is growing rapidly

Personally – I would recommend start with REST and JSON. Get a feel for it. Play with the Integrated webservice and learn XML Play with SOAP and REST services and see which one floats your boat.

Follow

About the Author

IBM i Software Developer, Digital Dad, AS400 Anarchist, RPG Modernizer, Alpha Nerd and Passionate Eater of Cheese and Biscuits. Nick Litten Dot Com is a mixture of blog posts that can be sometimes serious, frequently playful and probably down-right pointless all in the space of a day. Enjoy your stay, feel free to comment and in the words of the most interesting man in the world: Stay thirsty my friend.