公开单个 REST 端点 (GET),其中 returns 一个父对象和与其关联的所有子对象

Expose single REST endpoint (GET) which returns a parent object and all the child objects associated with it

实现一个 REST 端点 (GET) 以同时公开父对象和一组子对象是否正确?

例如:

parent { name: parent, id: 123, Children:{ { childName:1 }, { childName:2 } } }

我正在考虑两种方法:

  1. 实现一个 API 名为“parentWithchildren”(GET:/parentWithchildren/)
  2. 只是父端点,它将return一个父对象和一组子对象(GET: parent/)

如果我们遵循其余 api 原则,我们假设您的资源是 Parent 并且 Parent 可以有 children。假设每个 child 都可以通过 Id 和 Parent 来识别,那么您的其余端点将如下所示:

get /parent/{parentId}
get /parent/{parentId}/child/{childId}

现在您可以创建您的服务的原始版本,如果您的 child 人没有 ID 也很有用,它看起来像:

get /parent/{parentId}?fetchChildren=true

将端点实现为 /parentWithchildren 更像是一种 RPC 编程风格,不太像 rest。