&gt; Because it is not a well defined protocol, you cannot use the same client library to access random REST APIs.<p>You misunderstand what REST is.  It&#x27;s not a protocol, it&#x27;s an architectural style.  Of course you can&#x27;t build one client library to access arbitrary REST APIs – that&#x27;s like complaining that you can&#x27;t build an object-oriented library that can be used by any object-oriented language.<p>REST does, in fact, have a precise definition that is possible to understand and agree on.  It&#x27;s here:<p><a href="https:&#x2F;&#x2F;www.ics.uci.edu&#x2F;~fielding&#x2F;pubs&#x2F;dissertation&#x2F;rest_arch_style.htm" rel="nofollow">https:&#x2F;&#x2F;www.ics.uci.edu&#x2F;~fielding&#x2F;pubs&#x2F;dissertation&#x2F;rest_arc...</a>