当我具有实体的主ID但同时可以通过组合键标识该实体时,REST完整API的最佳做法是什么?
可以这样做
HTTP GET /entity/333
-数据库主键HTTP GET
/entity/CODE1/to/CODE2/with/CODE3
-这是URL的示例
组合键可能看起来像答案 0 :(得分:0)
REST不在乎您的URI使用什么拼写;我们真的只关心您选择的拼写是否符合RFC 3986中所述的限制。
如果您有两个不同的标识符,那么就REST客户端而言,您将拥有两个不同的资源-返回给客户端的表示将被缓存在不同的密钥下,使一个资源无效不会以任何方式影响另一个资源。
两个人拥有两个(或更多)共享相同表示的资源是完全合理的。
您还可以将对一种资源的请求重定向到另一种资源。
REST中超媒体约束的部分要点是服务器控制URI空间,因此您可以自由更改它们而不会破坏客户端(限制:破坏书签URI会造成混乱)。 URL缩短器起作用。
在设计路径段时,记住relative-resolution的工作方式通常非常有用,这样您的表示形式就可以引用相对于基本URL的其他资源,而不是锁定在特定的层次结构中。