RESTAPI访问自/自对象的最佳实践
假设我正在创建一个日志应用程序,我希望用户能够将条目发布到他们的日志中 我不打算允许用户(甚至是版主)在别人的日志中发布条目 也就是说,在我的端点路径中是否有公开帐户或日志id的参数 我认为RESTAPI访问自/自对象的最佳实践,rest,authorization,jwt-auth,Rest,Authorization,Jwt Auth,假设我正在创建一个日志应用程序,我希望用户能够将条目发布到他们的日志中 我不打算允许用户(甚至是版主)在别人的日志中发布条目 也就是说,在我的端点路径中是否有公开帐户或日志id的参数 我认为postapi/journals/postEntry就足够了,因为我可以通过访问令牌或JWT令牌确定用户 有人能想出在路径中提供日志ID的理由吗?例如:postapi/journals/{user journalId}/postEntry 有人能想出在路径中提供日志ID的理由吗?例如:PostAPI/jour
postapi/journals/postEntry
就足够了,因为我可以通过访问令牌或JWT令牌确定用户
有人能想出在路径中提供日志ID的理由吗?例如:postapi/journals/{user journalId}/postEntry
有人能想出在路径中提供日志ID的理由吗?例如:PostAPI/journals/{user journalId}/postEntry
简短回答:这违反了统一接口约束
看
实际上,您所做的是创建世界的这个小角落,在这里,您不是使用目标uri来标识资源,而是使用目标uri+令牌
这意味着您的东西没有使用世界上通用组件所期望的语义
例如,当我将URI从我的用户代理中复制出来,并与其他人共享时,其他人不会得到我期望的结果——他们最终会查看自己的视图,而不是我的视图
事实上,我们可以在一封电子邮件中粘贴一个URI,让它只对阅读电子邮件的人起作用,这在收养故事中是一个非常重要的部分
此外,REST中的密钥依赖于能够使用标识符作为主缓存密钥。因此,定制的身份机制可能会破坏缓存
实际上:您使用的是HTTP,HTTP具有缓存请求的规则。所以上面提到的缓存问题纯粹是理论上的
您可能会考虑的替代方案
- 您可以安排
到/api/journals/postEntry
/api/journals/{userJournalId}/postEntry
- 您可以使用标题来指示当前表示有一个更具体的标识符
- 您可以使用帮助客户端从备选方案导航到首选资源