【问题标题】:endpoints of RestControllerRestController 的端点
【发布时间】:2020-08-06 16:10:44
【问题描述】:

我正在使用 spring-boot 开发半年的工作,我正在为 restController 和他的端点而苦苦挣扎。我有用于用户、团队、任务、cmets 等的控制器。

例如,团队的控制器具有以下端点: "/teams" - 返回所有团队 "/teams/{idTeam}" - 通过 id 返回特定团队 等等……

我认为这些端点很好,但是如果我需要为特定团队返回任务怎么办?这个端点应该在团队控制器中看起来像"/teams/{idTeam}/tasks",或者在任务控制器中看起来像"/tasks/teams/{idTeam}"。有一个问题,我不知道团队控制器是否返回除了团队对象之外的其他东西的好习惯......示例还返回团队或 cmets 中的任务......

顺便说一句。团队实体本身有一系列任务或 cmets,但我用 @JsonIgnore 注释了数组,因为调用 /teams/{idTeam} 的人只想要团队的名称,而不是返回的所有任务、cmets、用户等团队 - 所以它不必要地下载其他数量的数据。

【问题讨论】:

  • /tasks/teams/{idTeam} 应该是首选。

标签: spring-boot rest endpoint spring-restcontroller


【解决方案1】:

这两个选项都是可能的。我会推荐因为任务是团队的子实体

/teams/{idTeam}/tasks

StackOverflow 博客中有一篇不错的文章:https://stackoverflow.blog/2020/03/02/best-practices-for-rest-api-design/

这也可以帮助http://microformats.org/wiki/rest/urls

【讨论】:

  • 感谢您的回答,因为对我来说最有价值的似乎是这篇文章:“处理嵌套资源的端点的路径应该通过附加嵌套资源作为路径名称来完成父资源。我们必须确保它确保我们认为嵌套资源的内容与我们在数据库表中的内容相匹配。否则,它会令人困惑。例如,如果我们想要一个端点来获取新闻的 cmets文章,我们应该将 /cmets 路径附加到 /articles 路径的末尾。”
  • 我很乐意为您提供帮助。如果我的回答有帮助,请接受或投票。谢谢
猜你喜欢
  • 1970-01-01
  • 2019-05-11
  • 1970-01-01
  • 2020-06-20
  • 2018-06-27
  • 2019-06-06
  • 1970-01-01
  • 2016-03-01
  • 2019-05-11
相关资源
最近更新 更多