Должна ли конечная точка REST возвращать всегда одни и те же поля JSON?

Должна ли конечная точка REST возвращать всегда одни и те же поля JSON?
Должна ли конечная точка REST возвращать всегда одни и те же поля JSON? - jeisen @ Unsplash

Например, допустим, у меня есть конечная точка для получения списка зданий, которые могут быть либо квартирами, либо домами. Клиент может фильтровать по квартирам или домам. У квартиры есть свойство floor, которого нет у дома, поэтому floor будет равно null для всех домов. Для ответа со списком домов у нас будет следующее

{
  [
    {
      "address": "1, foo street",
      "size": 400,
      "floor": null
    },
    {
      "address": "2, bar street",
      "size": 500,
      "floor": null
    },
}

Мы также можем иметь квартиры и дома в одном ответе, но пол всегда будет нулевым для домов.

Могу ли я удалить поле floor для домов или это плохая практика?

По моему опыту, совершенно нормально возвращать разные типы зданий, если клиент согласен с этим "контрактом" и может обрабатывать их так, как они есть.

Обычно наличие явного поля типа, указывающего, какое здание является текущим, помогает потребителю идентифицировать объект и обработать его соответствующим образом. Это предпочтительнее, чем что-то не столь явное, как "когда поле x равно null, это означает y".


LetsCodeIt, 18 марта 2023 г., 08:30