我创建了一个API来访问这些用户拥有的用户和对象。对象可以由作者或某种主持人/主管匿名访问。
在所有三种情况下,一组字段可以不同(或者可以是相同的 - 它还不知道);至少对于匿名模式和已识别授权模式是不同的。
假设我们有一个用户456,并且该用户拥有一个对象123。
主要问题是: 这种情况下最好的URI模式是什么,每种模式的优缺点是什么:
第二个问题是: 这些资源是相同的还是同一实体的不同资源?
所有对象的一个URI,输出根据身份的缺失或存在而变化:
/objects.json?criteria=xyz&user=456 -- result depends on identity & "user" /objects/123.json -- result depends on identity /users/456.json
匿名和已识别访问的不同URI,就好像它们是不同的资源一样:
/objects.json?criteria=xyz -- anonymous only /objects/123.json -- anonymous only /users/456.json /users/456/objects.json -- identified only /users/456/objects/123.json -- identified only
还有别的吗?
UPD:刚发明:
/objects/123 -- basic info, same for anonymous&identified
/objects/123/extra -- different kinds of extra info,
/objects/123/extended -- ... or extended representations,
/objects/123/meta -- ... only for authorized roles for each.
/objects?criteria=xyz -- common search for objects
/users/456/objects -- objects owned by user only
公共和每用户列表中有额外资源的URI(列表是入口点),具体取决于使用的列表。
使用这种方法,我们有指向资源的URI,这些URI不会根据请求用户的身份而变化。但我们仍然可以控制我们提供或不提供给请求用户的信息部分。并且URI不会以任何方式或方式重复。完美!
答案 0 :(得分:0)
假设在上面的UPD中回答了这个问题。这个伪答案是关闭这个问题。