【发布时间】:2015-12-14 14:29:06
【问题描述】:
我有这样的代码:
$iterator = 0;
while (($end = $sth->fetch()) && $iterator < 2)
{
$api_arr["data"]['tc'][] = $end["tc"];
$api_arr["data"]['em'][] = $end["em"];
$api_arr["data"]['sg'][] = $end["sg"];
$iterator ++;
}
我正在为其他开发人员创建我的网站的 API。我给他们一个 JSON 输出。像这样的:
{
-data{
tc: [
"value_tc_1",
"value_tc_2",
"value_tc_3"
],
em: [
"value_em_1",
"value_em_2",
"value_em_3"
],
sg: [
"value_sg_1",
"value_sg_2",
"value_sg_3"
]
}
}
当前输出: (当没有任何行时$sth->rowCount() == '')
[]
我想要什么: (当没有任何行时$sth->rowCount() == '')
{
-data{
tc: [false],
em: [false],
sg: [false]
}
}
嗯,我该怎么做呢?
作为咨询:在没有结果的情况下是否必须将false设置为数组的值?我从未有过创建 API 的经验。我想根据一些类似的 API 设置false(来自其他网站)。
实际上,我想向其他开发人员展示一个可以使用的标准。那么,作为 API,我所做的是正确的吗?其他开发者可以使用吗?
我不知道,也许我需要的是这个:
{
-data{
tc: false,
em: false,
sg: false
}
}
一般来说,我有什么需要知道的吗? {预先感谢:)}
我尝试了什么:我认为这样的东西会很有用,但实际上我不知道我应该如何使用它:
array_fill_keys(array_keys($api_arr['data']), "false");
【问题讨论】:
-
你最好发送一个无数据,也许是一个 404 响应,而不是带有错误值的数组。
-
1) 您可以计算出您已经完成了循环的多少次迭代,因此如果您没有执行任何操作,请在其中添加一轮
false。 2)这是一个奇怪的数据结构。 array 是一个容纳许多东西的容器。如果它没有应该容纳的东西,它应该只是空的。让它拥有一个false类型的东西来表示它是空的,这很奇怪。 -
你也可以返回一个错误对象,表示没有找到数据和一个状态码。
-
您正在开发 REST API 吗?然后你会在 REST 协议的文档(描述)中找到你的一些问题的答案。如果您不开发 REST API,那么您应该与实现客户端部分的开发人员讨论此数据结构的外观。
-
@deceze “这是一个奇怪的数据结构。”,嗯,你说的正是我需要听到的。那么我应该如何显示数据呢? ?这个更好
$api_arr["data"][]['tc'] = $end["tc"];