我有一个公共和私人响应的资源,只有一些处于决定性情况的用户才能访问私人响应。
什么是最佳实施?
resource/{id}
和resource/{id}/private
。 resource/{id}
。 resource/{id}?private=true
。 答案 0 :(得分:2)
你的术语有点混乱。您有一个资源和多个representation
。资源应具有一个规范位置(URL)。对于不同的用户来说,根据他们的身份验证级别获得不同的表示是完全正确的。
如果您希望用户能够请求资源的特定表示,您有几个选项。如果您使用自定义MIME类型,Accept
标头将是最佳选择。如果您不使用自定义MIME类型,那么查询参数是您最好的选择,但请确保它在整个应用程序中具有通用性和一致性。不要只使用?private=true
,而是使用类似?representation=public
的内容。这允许您稍后添加表示并使用相同的参数,并与需要指定表示的其他资源共享相同的查询参数。您应该避免使用单独的URL。
答案 1 :(得分:0)
IMO one resource
应该只有一个网址。您可以在HTTP中使用auth-token来检查服务器是否应该使用private
响应或public
响应进行响应。此外,如果某个用户请求某些未经授权的资源,您可以发送4xx
状态。
因此resource/{id}
似乎是一个不错的选择。