0

我正在设计一项需要 HTTP 基本或摘要式身份验证的服务。我正在尝试权衡使用 HTTP 凭据作为资源标识符的一部分的利弊。假设每个经过身份验证的用户都有一个联系人列表。联系人是否应为:

https://myservice.com/contacts

更确切地说:

https://myservice.com/users/112358/contacts

?

在这种服务的情况下,用户需要被隔离。一个用户永远不需要访问与另一个用户相关的联系人或任何其他信息。出于这个原因,第一种方法看起来更简洁,因为它只在 URL 中公开必要的信息。另一方面,对于不同的 HTTP 凭证,https://myserevice.com/contacts将是不同的资源,我不确定这是一个好的设计。

4

2 回答 2

1

我会去的https://myservice.com/users/112358/contacts

如果只是因为可能存在“在”用户“下”的资源,在某些时候其他用户可能会看到这些资源。例如,用户 X 能够查看用户 112358 的文档。

URI 的一致性是一个优势。即使使用HATEOAS,URI 的一致性对外部来说并不是一个问题,但这将有助于发展和维护 API 的实现。

于 2012-11-24T12:32:48.540 回答
1

出于您在问题末尾引用的相同原因,这/contacts将代表不同的资源,具体取决于提供的凭据,我建议您使用第二个更长的选项。用户是否希望记住这些 URL 并将其输入到他们的浏览器中?如果不是,长度和“漂亮”不应该是一个重要因素。

不要忘记,您始终可以将临时重定向从/contacts该用户自己的联系人返回。

于 2012-11-24T13:14:38.910 回答