Как смоделировать конечную точку с разными типами данных? - PullRequest
0 голосов
/ 26 января 2020

У меня есть модель в БД со следующей структурой

  • id
  • key
  • value_type (может быть 'String', 'Integer' и ' Boolean ')
  • string_value
  • int_value
  • bool_value

Где только один из string_value, int_value или bool_value имеет значение в то время как остальные 2 равны нулю, зависит от значения value_type. например:

id:1, key:'key1', value_type:'String', string_value:'random string', int_value:null, bool_value: null  
id:2, key:'key2', value_type:'Integer', string_value:NULL, int_value:777, bool_value:NULL   
id:3, key:'key3', value_type:'Boolean', string_value:NULL, int_value:NULL, bool_value:false

Я хочу открыть конечную точку, чтобы разрешить GET для сущностей этого типа, и рассмотреть две следующие структуры JSON для возвращаемого объекта:

Опция 1:

{
    id:<id>,
    key:<key>,
    value_type:<value_type>,
    value:<a string representation of the value>
}

, например:

{
    id:2,
    key:"key2",
    value_type:"Integer",
    value:"777"
}

Вариант 2:

{
    id:<id>,
    key:<key>,
    value_type:<value_type>,
    string_value:<string_value>,
    integer_value:<integer_value>,
    boolean_value:<boolean_value>
}

, например:

{
    id:2,
    key:"key2",
    value_type:"Integer",
    string_value:null,
    integer_value:777
    boolean_value:null
}

Первый вариант чище, пока второй более безопасен. Есть ли какие-либо стандарты или соображения, которые необходимо принять, прежде чем делать выбор?

...