We currently expose some webservices in our salesforce org as SOAP. We are planning to move to REST as we had issues with flattening of wsdls and cryptic soap format. Could you guys tell from your experience on issues we might face on converting our soap based services to REST api? Pros and cons would help. Is there any change in the authentication as we use 2way ssl currently to authenticate the external application?
There's basically no downside to using REST compared to SOAP. It was designed to be faster and smaller than SOAP, and does a good job of it. It uses JSON, so it transfers faster because JSON messages are smaller than SOAP, and is easier to troubleshoot, because JSON is easier to read than SOAP. It can receive long-lived tokens that can be revoked from the server in the event of loss or theft-- authentication is secure and remotely revocable. SOAP's only upside is that it is well established and has wider support in enterprise languages, such as C#, PHP, and so on. This benefit is hardly of any value, though, because it is otherwise inferior in virtually every way imaginable for normal applications. The only other problem is if you're migrating from SOAP to REST, you will likely have to re-write code to support the new authentication mechanism, etc.