Individual web services are typically described with Web Services Description Language (WSDL) documents. WSDL describes a web service in four parts:
- Port type -- The service and its ports/operations
- Messages -- The format of the requests and responses
- Types -- Custom data types beyond the standard primitives defined by the WSDL spec
- Bindings -- The address of the host providing the service
WSDL is independent of SOAP, but closely related to it, since the request and response messages are usually assumed to be formatted as SOAP.
So do WSDL and REST get along? Some say sure, some say "no way," and others say "why bother?" It seems to depend on how deeply you drink the Kool-Aid on REST. Seems to me that the port type section doesn't do much for REST, since the operations are always GET, PUT, POST, and DELETE. The port type would just specify which of those four verbs are supported. The bindings section might be useful for finding the hosts of REST services, but that pre-supposes those services are described by WSDL and can be looked up in something like UDDI.
Which leaves the messages and types sections of WSDL. Here there's a fair bit of disagreement between the SOAP and REST philosophies. SOAP is more strongly-typed, saying "Here's the format; take it or leave it." REST is looser; a single service might support multiple formats; the client and host negotiate which format to use for each transaction. The REST message formats are assumed to be XML, but even that's an implementation decision. The SOAP body is an XML document (specifically, the root element). So SOAP and REST agree on XML, but SOAP specifies only one XML schema whereas a REST service may support many. WSDL for a REST service would specify only one XML schema, therefore limiting its flexibility.
So, does a REST service even need the flexibility to support multiple XML schemas? If it can settle on one request/response format pair for a particular operation (GET, PUT, or POST; DELETE doesn't need data), then it seems to me that the REST service can be described with WSDL.