【问题标题】:many-to-many relationships with fields in a RESTful API与 RESTful API 中的字段的多对多关系
【发布时间】:2015-04-23 20:36:36
【问题描述】:

我发布了相同的未回答问题from a comment。 假设我有 2 个实体(团队和玩家)和一个多对多关系(注册),其中包含 id_team 和 id_player 字段以及其他信息,例如registrationDate。

GET /teams/{id}/players给我特定球队的所有球员

GET /players/{id}/teams 给我所有注册了特定球员的球队。

我的第一个问题是,我可以创建这个资源吗: GET /teams/{id}/registrations?

我的第二个问题是,如果我想获得所有注册怎么办?我可以通过这个 URI 访问它们吗: GET /registrations?

【问题讨论】:

  • 这取决于您的应用程序服务器如何将 URL 映射到 Java 类以及您如何注册 REST URL。但说真的,到目前为止你的代码是什么,你的实际问题是什么?
  • 我是 AngularJS 的初学者,但我仍然对如何表示多对多关系感到困惑。这是一个普遍的问题,要知道通过自己的 URI 访问关系是否很常见。
  • 因为你没有在你的问题中提到“AngularJS”:怎么会有人知道?

标签: rest entity-relationship


【解决方案1】:

我认为你应该使用

/registrations/
/registrations/player:{pid}/
/registrations/team:{tid}/
/registrations/{rid}

因此,您应该添加一个关系资源并使用扁平化 URI,而不是创建一个嵌套 URI,如果您不仅想读取,还想修改这种资源。

注意:

顺便说一句。这类似于关系数据库的关系表,所以我想这个想法对你来说不会那么新。

【讨论】:

  • 谢谢。如果我的数据库模型没有用于注册的 id,您认为使用 /registration/player:{pid}/team:{tid}/registration/team:{tid}/player:{pid} 是个好主意吗?
  • @AntoineMartin Ofc。你可以使用那种 URI。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-25
  • 2011-05-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-13
相关资源
最近更新 更多