Недавно я обсуждал с одним из моих коллег ответы, отправленные обратно из RESTful API через PHP. Наши разногласия заключались в нашем ответе от сервера.
Его аргумент заключался в том, чтобы просто json_encode необработанный объект (который представляет собой объектное представление PHP строки данных из таблицы базы данных). Однако я обнаружил проблему, например, в ситуации, когда вам нужно отправить обратно только несколько столбцов данных.
Например, предположим, что вы возвращаете объект, для которого все, что вам нужно, — это первичный ключ, описание и имя из таблицы. Однако у этого объекта также есть свойства для других целей (var1, var2 и т. д.)
Если это отображается так:
Код: Выделить всё
echo(json_encode($object));
Код: Выделить всё
{
"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));
Код: Выделить всё
{
"primary_key": 4,
"description": "hello",
"name": "name namerton"
}
Или это вопрос личных предпочтений?
Моя главная забота — это отправка тонн пустых ключей или даже отправка непреднамеренных данных с сервера. Т.е. Если вы хотите отправить обратно только первичный ключ, описание и имя, но у вас установлены два других свойства, вы также отправите их обратно, если вы закодируете этот объект в формате JSON. Его основной ответ заключается в том, что общедоступными должны быть только те свойства, которые должны быть отправлены обратно, и что если мы отправим обратно дополнительные данные, что с того? Мне просто трудно с этим согласиться, но интересно, имеет ли тот или иной подход какие-либо причины для предпочтения.
Заранее благодарю за мнения/ответы.
Подробнее здесь: https://stackoverflow.com/questions/276 ... ad-or-good
Мобильная версия