将相关数据添加到后端 api
Posted
技术标签:
【中文标题】将相关数据添加到后端 api【英文标题】:adding related data to backand api 【发布时间】:2016-06-07 07:04:47 【问题描述】:我有一个包含几个不同对象的数据库设置。例如,假设我有一个名为“kids”的对象和一个名为“toys”的相关对象。 Toys 有一个引用孩子的“孩子”id 字段。我想要的是,当我创建一个孩子时,我还可以发送一个玩具列表并让它自动添加这些玩具。
我在“创建后”部分创建了一个操作,但每当我检查“用户输入”变量时,我的额外数据都不存在(我在应用程序中使用测试功能)。考虑以下几点:
return $http (
method: 'POST',
url: Backand.getApiUrl() + '/1/objects/kids/',
params:
name: 'Add Kid',
parameters:
,
data:
name: 'Jimmy',
toys: ['truck', 'car', 'crane', 'motorbike'],
);
然后在回调中
function backandCallback(userInput, dbRow, parameters, userProfile)
console.log(userInput);
for ( var i = 0; i < userInput.toys.length; i++ )
var toy = userInput.toys[i];
//use $http POST method to create a toy which relates to the user
每当我检查 userInput 变量时,我得到的只是一个带有“名称”的 json 对象。不过我希望“玩具”也会在那里。
我确实想知道我是否采取了错误的方法,我是否应该调用 api 来创建一个孩子,然后从中获取数据并调用多个 api 来创建每个玩具?
感谢您的帮助
【问题讨论】:
【参考方案1】:您需要在 POST/PUT url 的查询字符串中添加 deep=true 请看一个在多对多关系中使用它的例子 http://codepen.io/yariv/pen/eJQPEz
function updatePet(updatedPet)
$http(
method: 'PUT',
url: Backand.getApiUrl() + baseUrl + petsObjName + '/' + updatedPet.id,
params:
deep: true,
returnObject: true
, // to save the users array
data: updatedPet
).then(function(response)
//$scope.readList(petsObjName);
);
这里有详细的答案: How to create objects that have relationships when using Backand BaaS? 相关问题 Update a complex object on Backand using $http PUT
【讨论】:
以上是关于将相关数据添加到后端 api的主要内容,如果未能解决你的问题,请参考以下文章
添加自定义标头并使用 AWS API Gateway 将其发送到后端服务
如何在拆分数据库中将表从前端链接到后端(MS Access 2010)