2

REST 资源应由两个名称标识。对此的最佳做法是什么?

我的想法:

 .../{id1}-{id2}
 .../{id1}/{id2}

id 可以由数字、字母和特殊字符组成。

第一个解决方案:

如果其中一个 id 包含字符 ,则会出现问题-。在这种情况下,分隔字符不是唯一的。

第二种解决方案:

只是.../{id1}没有资源,这是 RESTful 吗?

编辑:

REST 资源代表凭据。凭据由提供者名称和用户名标识。

 .../Credentials/<ProviderName>;<UserName>

我不想显示.../Credentials/<ProviderName>提供者的所有凭据(它不适合我的 XML 结构)。

编辑2:

.../Credentials所有凭据都将以 XML 格式显示。凭证在那里表示为 XML 根元素的子元素。我想创建一个与 XML 结构相同的 REST 资源结构。因此,子资源.../Credentials应该直接是某个凭据(而不是像所有提供者那样的一组凭据)。

4

2 回答 2

1

您的第二个解决方案对我来说说您在and.../{id1}/{id2}之间有层次关系,这似乎不能很好地解决您的资源设计,因为正如您所说,两个标识符都引用相同的资源。另一方面,对于您的第一个解决方案,您可以使用它来避免暗示不存在的层次结构,如Restful Web 服务中所引用的那样,因此我将采用以下方法:id1id2.../{id1}-{id2};-

.../{id1};{id2}/
于 2013-04-08T09:48:57.820 回答
1

REST API 必须是超文本驱动的,所以不要在 URL 模式上浪费时间,因为它们不是 RESTful。URL 模式意味着客户端和服务器之间的紧密耦合;简单地说,客户端必须知道 URL 的样子并有能力构造它们。

另见这篇文章:

http://roy.gbiv.com/untangled/2008/rest-apis-must-be-hypertext-driven

关于凭据的说明;似乎您在客户端和服务器之间保持一种状态,这也违反了 REST 原则:无状态。

于 2013-04-08T15:55:13.763 回答