JSON API V1创建嵌套资源



我正在使用Grape API实现一个符合JSON API V1的API,该API使用AR作为ORM。我对创建嵌套资源/关系的格式有点困惑。看起来我们需要一次创建一个资源,并且可以链接到现有的资源。但我们不能说在同一个请求中为has many关系创建记录。

我的情况:有Donation模态。它有许多Split。一个拆分属于一个Fund。我需要创建一个多分割的捐赠。

问题:如何根据JSON:API建议构建API?

仔细看了几次文档,我想我不能在一个API调用中进行捐赠,必须单独创建每个资源,并且可能会运行最终提交以触发捐赠。

步骤1:创建捐赠-假设返回ID 100

/api/v1/donations

{ type: "donation", data: { comments: "abc" } }

步骤2:创建拆分1

/api/v1/splits

{
type: "split",
data: { amount: 100_00 },
relationships: {
data: [{ type: "fund", id: 5 }, { type: "donation", id: 100 }]
}
}

最后:用之类的东西触发捐赠

补丁/api/v1/donations/100

{
type: "donation"
data: { 
state: "process"
}
}

有没有办法在一个请求中创建它?

JSON:API规范不支持v1.0中一个请求创建、更新或删除多个资源,v1.0是当前的稳定版本。

即将推出的v1.1计划支持Extensions,它允许扩展基本规范。规范的维护者之一提出了原子操作扩展的建议。它计划以v1.1作为官方扩展版本发布。

最新更新