We need to create an API to our system. How do I convince my boss that REST is a better option than SOAP (or XML-RPC)?

I say REST is...


easier to implement and maintain
not much new to learn -- plain old HTTP
lot of people have chosen it Yahoo ~ Facebook ~ Twitter
will be lot quicker to code


My boss says SOAP is...


richer and more expressive
it's all standard XML (SOAP, WSDL, UDDI) -- and so will be easier to consume
well standardized than REST
Google uses a lot of SOAP
it is important to adhere to SOAP standards than to create a custom XML schema in REST


From a guy who's used both SOAP and REST extensively...


  BOSS says SOAP is...

richer and more expressive



Anytime someone says a product is "rich" I want to become violently ill. I can't think of a more cliche comment to make about a technology or platform. Basically you're saying "I think this product is great, but I don't have any actual facts to back it up." I don't know what he means by "expressive" so I can't really comment on it...


  it's all standard XML (SOAP, WSDL, UDDI) -- and so will be easier to
  consume


This is patently false. SOAP can be finicky, especially when you get into things like complex types and authentication headers. This is especially true when you start doing cross-language communication - getting PHP to properly consume and communicate with a .NET SOAP service that was using complex types and authentication was an exercise in keyboard-snapping horror that makes me wake up in a cold sweat to this day. REST is definitely easier to consume - you just provide the URL and done! You have your data! There are some drawbacks to this, depending on your needs, but for many web services this all that's needed.


  well standardized than REST


It is "standardized" by the fact that it has a schema. That's it. Aside from that, you're still going to have to work with somebody else's data, which is never a picnic no matter what communication protocol you use. And REST has a standard - its called HTTP. It works pretty well.


  Google uses a lot of SOAP


They used to use SOAP (they may for some products still, but not many). The majority of their web services are solidly REST-based. Here's a link showing that they abandoned a SOAP service in favor of REST.


  it is important to adhere to SOAP standards than to create a custom
  XML schema in REST


This sounds like one of those comments made by superiors with limited understanding of the actual technology at hand. There will only be one part of the SOAP packet that is standardized - the message header, and the body wrapper. Everything in between is your own XML. You still have to create your own message. The message itself is not conforming to specific standard. It is still a serialized object or group of objects.

As a closing note, SOAP versus REST is a big topic, one without a concrete answer and you'll probably get different answers depending on who you talk to. In fact, I can't say for certain that in your particular case that REST WILL be better but I can say that your bosses arguments are weak and are indicative of a lack of understanding about the distinction between the two. I've used both technologies and my hard and fast conclusion is this: there is no hard and fast conclusion and, like so many other tech decisions, it depends on the needs of organization. The best solution, truly, is thoughtful research, an open discussion between the people working on the project to find the best solution, and an honest look at your needs.

Here a few links to existing discussions that may be beneficial.

https://stackoverflow.com/questions/3285704/should-a-netflix-or-twitter-style-web-service-use-rest-or-soap

http://www.prescod.net/rest/rest_vs_soap_overview/

https://stackoverflow.com/questions/209905/rest-and-soap
