在我假设的应用程序中的某个时刻,为了效率,我想在单个请求中创建多个不同类型的相关实体。在下面的示例中,我以包含有关新用户及其相关头像的数据的方式序列化请求。
// POST /api/users
{
data: {
attributes: { ... },
type: 'user',
relationships: {
avatar: {
data: {
attributes: { ... }
type: 'avatar',
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
问题是,在 JSONAPI 中这样做的正确/推荐方法(如果有的话)是什么?
JSON:API 规范尚不支持在单个请求中创建或更新多个资源。然而,对于即将到来的规范 v1.1,有一个关于原子操作扩展的提议。
但在大多数情况下,这样的功能并不是效率所必需的。通过将多个创建或更新请求捆绑为一个请求,您甚至可能会给服务器带来更多负载。如今,使用 HTTP/2 并行执行多个请求的成本很低。
如果操作相互依赖(例如,必须等待创建一个帖子,然后才能创建该帖子的评论),那么它可能不会像使用一个请求那样高效。但在这种情况下,原子事务也是一个很强的要求。这是该扩展背后的主要驱动力。
所以要回答你的问题: