假设我的模型由一个实体组成,该实体通过属性Parent引用一些实体。根据 REST 原则,特定 URI 的路径段将为。ChildchildrenChild/parent/{parentId}/children/{childId}
当对 执行更新操作时Child,通常childId我只需要唯一地标识正确的Child,并认为parentId路径中的段是多余的。随着层次结构变得复杂,这种冗余会加剧。
现在我想起来了,它也可能会导致意外的行为:如果程序员不知道的话,访问具有相同childId但不同的URI 可能会导致相同的行为。 当访问不相关的下parentId一个时可能会发生的情况是应该返回客户端错误代码。ChildParent
目前我认为也许不应该向 REST API 引入任何层次结构,除非它绝对直观,因为它:
有没有办法避免这种冗余并仍然符合 REST 原则?
是的,只需像这样构建您的 URL...
/children/{childId}
由于您可以在服务器端从子级推断出父级,因此没有理由在 URL 中声明它。仅当绝对需要时才应将多个资源放入 URL 中。例如,用户对评论进行投票。由于在数据库端没有正式的方法来确定,因此您将创建一个类似 的 url。
/voter/{userId}/comment/{commentId}/upvote
| 归档时间: |
|
| 查看次数: |
2619 次 |
| 最近记录: |