The alternative is something horrible: WSDL (aka Web Service Definition Language), which is a (clumsy) way to programmatically describe (somewhat) arbitrary APIS.
REST severely limits the verbs, pushing almost all application-specific variation into the payload of the document. The benefit of doing that is that many client implementations can communicate with many heterogeneous services. The clients and servers may be completely unknown to each other, some not being written yet.
There's a podcast in which Stefan Tilkov explains REST nicely.