Steve Jones wrote: > opaque means that URIs should be meaningless, so all sensibly named > URIs are therefore not REST. [...] > But if its easy to remember then its not opaque (even sensible + GUID > isn't opaque).
To me opaque just means non-transparent. For an opaque identifier, any 'meaning' which may be encoded in it (beyond its use as a unique identifier) is irrelevant (and in any case not visible) to the system or model to which it is opaque. It is not forbidden that some meaning may be discernible by some other system or model (e.g. the english language). So as I understand it, from the perspective of the requirements placed on a system if it is to meet the REST architectural principles, using http://myserver.com/invoice to refer to a particular resource is no better than using http://myserver.com/akjofjm, neither is it any worse. If *other* requirements (e.g. making the URI easy to remember or meaningful to a human doing some debugging or auditing) require adding meaning to the URI, thats fine.
