mhe*_*ens 14 rest metadata relationships
这是一个设置我的问题的例子.我有一个包含'盒子'的模型,他们有一个REST端点:
/boxes
,
/boxes/{boxId}
该模型还包含"节点":
/nodes
,
/nodes/{nodeId}
节点可以位于框的边界上,这是一种多对多关系.让一个节点位于多个边界上是一种表示这些边界(部分)重叠的方式,但节点也有其他用途.
我正在尝试确定如何以非令人惊讶的RESTful方式对其进行建模.我可以看到几种方法来做到这一点.但我不确定应该使用哪个:
模型/borders
作为具有自己的端点的完全成熟的实体类型.有框参考四个边框(顶部,底部,左侧,右侧).边框引用节点列表.让节点引用边框列表.
/boxNodeRelationships
具有自己的端点的模型,并且每个这样的关系指向一个框,一个节点,并包含一个"边框"字段(一个带有四个选项的枚举).
两者都很相似,而且相当"重".另一种选择是更专注:
{ border, node }
对象列表.为节点提供{ box, border }
对象列表.这些对象将从GET
调用返回,并期望从POST
/ PUT
调用返回,但不会是具有端点的完全成熟类型.我想知道RESTifarian如何解决这个问题,以及听取这些方法的一些优点/缺点.我还想知道是否有其他方法根本不同.
我会创建 3 个实体:
以及关系:
所以你可以解决他们:
获取第一个节点:/boxes/1/borders/1/nodes/1
你可能有一些逻辑:
if /boxes/1/borders contain /nodes/1 and /boxes/2/borders contain /borders/1 then they intersect
Run Code Online (Sandbox Code Playgroud)
等等。