REST 资源应由两个名称标识。对此的最佳实践是什么?
我的想法:
.../{id1}-{id2}
.../{id1}/{id2}
ID 可以由数字、字母和特殊字符组成。
第一个解决方案:
如果其中一个 ID 包含字符 -
,则会出现问题。在这种情况下,分隔字符不是唯一的。
第二个解决方案:
只需 .../{id1}
将没有资源,这是 RESTful 吗?
编辑:
REST 资源代表凭据。凭据由提供商名称和用户名标识。
.../Credentials/<ProviderName>;<UserName>
我不想显示在 .../Credentials/<ProviderName>
提供者的所有凭据(它不适合我的 XML 结构)。
编辑2:
在.../Credentials
所有凭证都将以 XML 形式显示。凭证表示为 XML 根元素的子元素。我想创建一个与 XML 结构相同的 REST 资源结构。因此,.../Credentials
的子资源应该直接是某个凭据(而不是像所有提供者那样的一组凭据)。
最佳答案
你的第二个解决方案.../{id1}/{id2}
对我来说,你在id1
和id2
之间有层次结构关系>,这似乎不能很好地解决您的资源设计,因为
正如您所说,标识符引用相同的资源。另一方面,对于您的第一个解决方案 .../{id1}-{id2}
您可以使用 ;
而不是 -
以避免暗示不存在层次结构的地方
如 Restful Web Services 中引用所以我会这样做:
.../{id1};{id2}/
关于xml - 最佳实践 - 由两个名称标识的资源的 REST URI 设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15875414/