1

我正在为个人项目构建我的第一个 REST API(至少在尝试)。

在这个项目中,有一个名为players 的资源,可以在team. 根据REST API 设计规则手册,应将资源设置为文档或存储 并且应尽可能隔离这些角色。

然而,我想将一些元数据附加到team资源中,例如team创建日期。那么是否GET /teams/atlanta可以将这个元数据(使其成为文档)与player团队中的 s 列表一起返回(使其成为商店)。

这是一个好主意吗?如果是,为什么?如果不是,为什么不以及如何更好地解决这个问题?

我知道开发 REST API 没有规则,但有一些好的做法,我想遵守这些做法。也请不要说这真的是我的第一个 REST API,如果有的话,请原谅我的无知。

4

1 回答 1

2

我建议GET /teams/atlanta只返回有关球队的信息,例如您提到的成立日期,然后GET /teams/atlanta/players返回该球队的球员名单。当您呈现使用除 GET 之外的 HTTP 方法的 API 时,这些区别变得更加重要。

例如,如果您想将一名球员添加到一个团队中 - 如果您只需 POST 一个球员对象,这将比每次您想添加一个单独的球员时/teams/atlanta/players都必须 PUT 整个团队对象要容易得多。/teams/atlanta

如果您的 API 只允许检索数据,并且它是针对特定客户端应用程序的,则有一个论点是将所有团队数据组合到一个对象中,以节省客户端必须对数据提出额外请求,但请记住,它不太灵活。

您的应用程序可能希望通过调用显示球队列表,GET /teams但您可能不希望列表中每个对象中包含所有球员信息,因为这是相当多的数据,但如果GET /teams/atlanta返回球员信息,那么它将不一致也不要将其包含在列表版本中。

我个人倾向于按照我的建议拆分资源,并接受客户可能需要提出一两个额外请求的事实。

于 2013-02-14T09:22:54.497 回答