我忙于使用Spring Boot进行复杂的Web应用程序。 我有多个相互耦合的实体。
实施例: 我有以下实体:项目,群集,案例,结果 项目可以有多个群集,但群集只能属于一个项目。 群集可以有多个案例,但案例只能属于一个群集。 与Case->结果相同。
关系是单向的。因此,项目知道哪个群集属于它,但群集并不知道它属于哪个项目。与Cluster-> Case和Case-> Result相同。
我有以下网址结构,
/projects
/projects/(id project)/clusters
/projects/(id project)/clusters/(id cluster)
/projects/(id project)/clusters/(id cluster)/case
等...
我遇到的问题是当我在第4个网址时,我不需要项目的ID,因为案例使用群集的ID来保存它。 但由于url的结构,我需要项目的id来保持完整性。 由于我的关系的性质(单向),我必须在我的案例控制器中借助我的集群来查找项目的id。
有没有一种简单的方法可以解决这个问题?
答案 0 :(得分:0)
我想建议另一种构建API的方法。在定义URI时,您应该将每个实体视为一个独立的对象。
例如,您可以拥有以下URI:
/projects GET - returns a list of projects
/projects/{id} GET - returns a details of a particular entity
/projects POST - create new project
/projects/{id} DELETE - delete project
如果是群集API,您可以使用相同的结构:
/clusters GET - returns a list of projects
/clusters/{id} GET - returns a details of a particular entity
/clusters POST - create new project
/clusters/{id} DELETE - delete project
问题是我们如何为特定项目创建集群?容易!我们可以在JSON正文中传递projectId
。
这是一种常见的做法,它有一个很大的优势 - 您的应用程序中不会有长URI。