假设我的模型由一个Parent
实体组成,该实体通过children
属性引用一些Child
实体。根据REST原则,特定Child
的URI的路径段将为/parent/{parentId}/children/{childId}
。URI中的REST父ID
当在Child
执行更新操作,通常childId
是我需要的,以便唯一识别正确Child
,认为在路径冗余的parentId
段。随着层次结构变得复杂,这种冗余会加剧。
现在我想起来了,这也可能会导致意外的行为:访问的URI具有相同childId
但不同parentId
可能会导致相同的行为,如果程序员不知道。在不相关的Parent
下访问Child
时可能会发生什么情况,应该返回客户端错误代码。
目前,我想,也许没有等级应出台REST API,除非它是绝对直观的,因为它:
- 使得URI - 因此API - 更复杂。 Hardens可维护性。
- 冗余可能会导致用户推断访问某些URI的结果。
- 冗余可能会成为不知道程序员的陷阱。
有没有办法避开这种冗余,仍然符合REST原则?
REST是一套原则,而不是一个标准。 – gioele 2012-02-19 18:33:50
什么是URI的“结果”? (有人使用任何类型的API希望能够预测操作的结果,至少在基本水平上。) – 2012-02-19 18:44:07
@DonalFellows - 访问URI的结果。我编辑了你的问题:)。问题是这种API不够可预测。 – yair 2012-02-19 18:49:36