0

给定一个json字符串:

POST localhost:8080/person  
{
   f_name : 'Juan',  
   l_name : 'Dela Cruz'  
}

我们通常会在成功时返回一个布尔 true值,以便 apigility 会返回/呈现如下内容:

200 Ok  
{  
    f_name : 'Juan',  
    l_name : 'Dela Cruz'  
}

我怎样才能id在结果响应中包含新创建的实体?它可能看起来像这样:

200 Ok  
{  
    id : 1,
    f_name : 'Juan',  
    l_name : 'Dela Cruz'  
}

任何帮助/领导都非常感谢。

4

2 回答 2

0

我在这里包括我自己的答案,但我认为这不是最好的方法。

我发现您还可以array从资源的 create( POST) 方法返回一个 'id' 字段,该字段取自lastInsertValuedbadapter对象的属性并添加到array.

$insert['f_name'] = 'Juan';  
$insert['l_name'] = 'Dela Cruz';

$table = new TableGateway('person', $adapter);
$table->insert($insert);

$insert['id'] = $table->lastInsertValue;

return $insert;

我希望还有其他方法可以做到这一点。

于 2015-01-27T02:48:33.057 回答
0

Apigility 确实返回了您发送的对象。如果您想获得不同的结果,您可以自己构建并返回它,正如 javiniar.leonard 还指出的那样。

重要的是您不要尝试对其进行 json_encode 编码,而是让 Apigility 处理它。

我使用 API 发送在具有本地 ID 的应用程序中创建的项目,并返回本地 ID 和 web_id 以允许在多个设备上同步。

于 2017-05-05T17:57:20.200 回答