我正在使用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作为官方扩展版本发布。