3 ms·
> I've been developing so-called "REST" services for over ten years (and SOAP services before that), and not even once were REST principles actually applied in
by throwaway2016a 8y ago
> I've been developing so-called "REST" services for over ten years (and SOAP services before that), and not even once were REST principles actually applied in the projects I worked on.
As a consultant who has talked at conferences on APIs and is brought in to explicitly fix these kind of issues I have seen a lot of this too but correct REST APIs do exist. I know because my team builds them.
You're experience is anecdotal and as is mine. But just because a lot of people assume REST is something it isn't doesn't mean REST is inferior to SOAP.
> Re: statefulness ("order matters")
My order matters comment had nothing to do with statefulness. I mean in the XML. In SOP this might work:
<order>
<token>ABC</token>
<price>19.95</price>
</order>
But this will fail:
<order>
<price>19.95</price>
<token>ABC</token>
</order>
Why the heck does the order of keys in my object make the API fail!?
Granted that is not a limitation of SOAP but more XML schemas in general. Json is more likely to be order of values agnostic.
But to play devil's advocate I can see the argument where if you are using SOAP to make multiple RPC calls in the same envelope than order is important.
- tannhaeuser 8y agoAh ok. But to assemble XML/SOAP for these kind of payloads you'd typically be using a lib such as JAXB, Jackson/gson, Spring (for Java at least) or SCA anyway. Moreover, you could design your XML Schema such that both variants are accepted (using XSD "all-groups"), though typically record-like data structures are indeed described using XSD sequences which would cause the issue you mentioned. Again I agree XML/XSD isn't a great payload/schema mechanism for data structures such as maps; after all SGML/XML was invented for encoding text. It's being used because it was the first mechanism on the scene, and it continues to be used because it's still much more capable and mature/established in terms of data validation than anything JSON, especially for protocols used in communication with external partners/banks/authorities.