Какова лучшая практика при сериализации взаимоисключающих данных, которые имеют один и тот же тип (с точки зрения программирования), но с другим «значением» и другой логикой, которая должна обрабатывать это?
В качестве примера, скажем, мы хотим разработать API, который обрабатывает восстановление аккаунта. Это может быть сделано либо по электронной почте или по SMS (что отличается от логики на бэкэнде).
Таким образом, если мы хотим составить запрос к этому API, мы можем подойти к нему динамически, то есть клиент отправляет:
{"email":"my@email.com"}
или
{"phone":"+123456789"}
В качестве альтернативы, мы устанавливаем "типизированный" json, то есть :
{"type":"email", "value":"my@email.com"}
или
{"type":"phone", "value":"+123456789"}
Какой из этих двух подходов считается лучшей практикой?