Not a declaration that if you do these things you are bad and your API is bad
I'm sure your API is fine.
http://www.example.com/ponies/zomg/yay.json.php.actually_its_xml http://www.example.com/7 http://www.example.com/api/C394235458E3E32A157C7AC2956DA
But they are all valid. To enhance developer joy and adoption, we make nice URIs:
http://www.example.com/api/bars/1
This has nothing to do with compliance nor does it define a RESTful API.
http://www.example.com/api
to:
http://newapi.example.com/
http://www.example.com/api/v1/foo
to:
http://www.example.com/api/v2/foo
or
http://www.example.com/api/foo
to:
http://www.example.com/api_v2/foo
http://www.example.com/api/foo?apiVersion=1
to
http://www.example.com/api/foo?apiVersion=2
Accept-version: 1; GET http://www.example.com/api/foo
to:
Accept-version: 2; GET http://www.example.com/api/foo
application/json
text/html
But who didn't know you can specify this:
application/vnd.example.foo+json;version=1
application/vnd.example.foo_v1+json
http://www.example.com/api/bars/1
or, generically:
http://hostname/api_name/resource_name/id(/subresources?)
Bad:
http://www.example.com/api/bars.json
http://www.example.com/api/addNewBar
http://www.example.com/api/getBar?id=1