PHP API 最佳实践 - 回显 json_encoded 对象 : bad or good?

标签 php json rest

我提前向您道歉,因为我的问题措辞有问题,但请耐心等待,我会尽量做到准确。但是,我的问题有点含糊,很难问。

我最近一直在与我的一位同事讨论通过 PHP 从 RESTful API 发回的响应。我们的不同之处在于我们对服务器的响应。

他的论点是只对原始对象(它是数据库表中一行数据的 PHP 对象表示)进行 json_encode。但是,我发现的问题是,例如,您只需要发回几列数据的情况。

例如,假设您要返回一个对象,您只需要表中的主键、描述和名称即可。但是,该对象还具有其他用途的属性(var1、var2 等) 如果像这样回显:

echo(json_encode($object));

JSON 看起来像这样:

{
    "primary_key": 4,
    "description": "hello",
    "name": "name namerton",
    "var1": null,
    "var2": null,
    "var3": null,
    "var4": null,
    "var5": null,
    "var6": null
}

我通常更喜欢以下列方式遍历我的对象:

$objectArray = array(
    "primary_key" => $object->primary_key,
    "description" => $object->description,
    "name" => $object->name
);
echo(json_encode($objectArray));

将数据转换成一个数组,返回一个更像这样的 JSON 结果:

{
    "primary_key": 4,
    "description": "hello",
    "name": "name namerton"
}

我想我的问题是,对于 json 编码对象并从 API 返回它们是否有任何类型的标准?一个或另一个不好的做法吗? 或者这是个人喜好问题?

我主要担心的是发回大量空 key ,甚至从服务器发回无意的数据。 IE。如果您只想发回主键、描述和名称,但设置了另外两个属性,那么如果您对该对象进行 JSON 编码,您也会将它们发回。他的主要回应是只有应该发回的属性才应该公开,如果我们发回额外的数据,那又怎样?我只是很难同意,但想知道是否有任何理由支持一种或另一种方法。

提前感谢您的意见/回答。

最佳答案

我同意你的看法。您不应该通过 REST 响应直接公开您的模式,以免一些不道德的类型决定破解您的设置,现在对您的模式布局进行有根据的猜测,即使使用有效的 api key 也可能发生这种情况。

我只会返回请求的列,这些列会被更改,因此它们不会反射(reflect)模式。

关于PHP API 最佳实践 - 回显 json_encoded 对象 : bad or good?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27697794/

相关文章:

php - PHP 版本 7 上的 TCPDF 错误

javascript - 如何获取最后一个元素的id?

Javascript - 计算 JSON 的所有嵌套对象

android - 如何从 SD 卡读取 json 文件

php - cPanel JSON API2 editzone记录问题

php - 将数据从 CSV 文件插入数据库。只插入最后一行

html - 通过 PHP/AJAX 发送 html 代码时,它会转义双引号

java - Restful API 的读取列表

ajax - JSONP 传递 api key

rest - 测试API Grails