Sidenote: speaking of multiple interfaces for the same resource, check out what Amazon did with SQS: there is a REST interface, a SOAP interface (described in WSDL) and a QUERY interface. The REST interface is bona-fide REST. It uses HTTP verbs like (GET DELETE PUT POST), and the URI corresponds or maps to the resource in question, for example the queue you’d like to operate on. In WCF, to build this sort of interface, you would use a [WebInvoke] attribute on your service interface. The QUERY interface on the Amazon SQS resource is, like the REST interface, always based on HJTTP, but QUERY is different than REST in that QUERY is always an HTTP GET, and specifies the object and verb in the URI.
The QUERY request to create a queue:
GET /?Action=CreateQueue&QueueName=Foo HTTP/1.1
The REST request to create a queue:
POST /?QueueName=Foo HTTP/1.1
Some people confuse or conflate REST with HTTP QUERY, but Amazon certainly does not. It doesn’t help matters that there is no widely accepted or adopted name for the HTTP QUERY services interface. Amazon calls it HTTP QUERY or justr QUERY but as far as I am aware, that name is not widely used by other systems who expose similarly architected interfaces.
How about “Abomination”? ;-)