有很多人想知道让多个URI(例如http://example.com/api/colors/red
和http://example.com/api/palette/red
)引用相同的资源是否可行。 (共识似乎是“是”。)
但我想知道在RESTful接口中通过多个标识符标识资源的含义。 (是的,暗示这需要多个URI,但问题不仅仅是多个URI。)
作为一个例子,我正在考虑允许客户端使用其名称或RGB值查询颜色。这就是URI http://example.com/api/colors/red
和http://example.com/api/colors/FF0000
都会引用红色。请注意,URI具有相同的形式;仅资源有两个标识符。据推测,服务器会查看标识符是数字还是文本来确定要执行的查找。 (是的,一个可能是规范的。)
任何人都有这样一个方案的实际经验,其中相同形式的URI使用多个ID来引用相同的资源?这是否打破了REST的任何基础理念?