Api REST最佳实践:存储也应该返回元数据吗?
我正在为一个个人项目构建我的第一个RESTAPI(至少正在尝试) 在这个项目中,有名为Api REST最佳实践:存储也应该返回元数据吗?,api,rest,Api,Rest,我正在为一个个人项目构建我的第一个RESTAPI(至少正在尝试) 在这个项目中,有名为players的资源,这些资源可以在团队中保存。根据需要,资源应被设置为文档或存储区,并且应尽可能将这些角色分开 然而,我想在团队资源中附加一些元数据,例如团队成立的日期。那么,GET/teams/atlanta是否可以将此元数据(使其成为文档)与团队中的players列表(使其成为存储)一起返回 这是个好主意吗?如果是,为什么?如果不是,为什么不呢?如何更好地解决这个问题 我知道开发RESTAPI没有规则,但
player
s的资源,这些资源可以在团队中保存。根据需要,资源应被设置为文档或存储区,并且应尽可能将这些角色分开
然而,我想在团队
资源中附加一些元数据,例如团队
成立的日期。那么,GET/teams/atlanta
是否可以将此元数据(使其成为文档)与团队中的player
s列表(使其成为存储)一起返回
这是个好主意吗?如果是,为什么?如果不是,为什么不呢?如何更好地解决这个问题
我知道开发RESTAPI没有规则,但是有一些好的实践,我愿意遵守这些规则。也请注意,这实际上是我的第一个REST API,如果有,请原谅我的无知。我建议让GET/teams/atlanta
只返回有关团队的信息,例如您提到的成立日期,然后让GET/teams/atlanta/players
返回该团队的球员列表。当您展示一个使用HTTP方法而不是GET的API时,这些区别变得更加重要
例如,如果您想向团队中添加一名球员-如果您只需将球员对象发布到/teams/atlanta/players
中,这将比每次添加一名球员时必须将整个团队对象发布到/teams/atlanta
中容易得多
如果您的API只允许检索数据,并且是针对特定的客户机应用程序,则有理由将所有团队数据合并到一个对象中,以避免客户机不得不对数据发出额外的请求,但请记住,这样做灵活性较低
您的应用程序可能希望通过调用GET/teams
来显示球队列表,但您可能不希望列表中的每个对象都包含所有球员信息,因为这是相当多的数据,但是如果GET/teams/atlanta
返回球员信息,那么不将其包含在列表版本中是不一致的
我个人倾向于按照我的建议拆分资源,并接受客户可能需要提出一两个额外请求的事实。nice没有想到这一点!这样,团队也可以更容易地扩展(例如/teams/atlanta/mascots
)。我想我只是还没有休息的心态。