我正在按照 HATEOAS / REST 原则设计一个 API。但是我不确定这个基本点:资源识别。
假设这个 url: /images 公开了用户上传的所有图像(给这个用户)。
假设我使用 oauth 访问令牌进行身份验证,/images 的内容将根据 Authorization 标头而有所不同。
这是否打破了资源概念的识别?
不,资源不必是静态的才能保持安静。想象一个提供时间的 Web 服务:
Http://www.myservice.com/current-time/
其余剧本中的任何内容都不会要求这不能按预期工作。照片的情况是您的服务正在返回基于请求中设置的信息表示的资源 - 通过 auth 标头过滤掉所有非用户拥有的照片。您仍然返回相同的一般事物,一组照片。
与使用响应类型标头说您希望返回 json 表示与 xml 表示没有太大区别。
当你完全切换结果时,事情会变得很可疑,比如一个人获得了一组图像,而另一个人在同一资源位置提供了上周的 Glee 成绩单。