Лучшие практики PHP API – отображение объекта json_encoded: плохо или хорошо?Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Лучшие практики PHP API – отображение объекта json_encoded: плохо или хорошо?

Сообщение Anonymous »

Заранее прошу прощения, так как мне трудно сформулировать свои вопросы, но, пожалуйста, будьте терпеливы, и я постараюсь быть максимально точным. Однако мой вопрос несколько расплывчатый, и его сложно задать.

Недавно я обсуждал с одним из моих коллег ответы, отправленные обратно из RESTful API через PHP. Наши разногласия заключались в нашем ответе от сервера.

Его аргумент заключался в том, чтобы просто json_encode необработанный объект (который представляет собой объектное представление PHP строки данных из таблицы базы данных). Однако я обнаружил проблему, например, в ситуации, когда вам нужно отправить обратно только несколько столбцов данных.

Например, предположим, что вы возвращаете объект, для которого все, что вам нужно, — это первичный ключ, описание и имя из таблицы. Однако у этого объекта также есть свойства для других целей (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? Является ли тот или иной вариант плохой практикой?
Или это вопрос личных предпочтений?

Моя главная забота — это отправка тонн пустых ключей или даже отправка непреднамеренных данных с сервера. Т.е. Если вы хотите отправить обратно только первичный ключ, описание и имя, но у вас установлены два других свойства, вы также отправите их обратно, если вы закодируете этот объект в формате JSON. Его основной ответ заключается в том, что общедоступными должны быть только те свойства, которые должны быть отправлены обратно, и что если мы отправим обратно дополнительные данные, что с того? Мне просто трудно с этим согласиться, но интересно, имеет ли тот или иной подход какие-либо причины для предпочтения.

Заранее благодарю за мнения/ответы.

Подробнее здесь: https://stackoverflow.com/questions/276 ... ad-or-good
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»