Мы пытаемся реализовать RestAPI с контролем доступа пользователей, где один и тот же URI должен возвращать разные ответы для двух пользователей с разными ролями. Скажем, ответ на URI(/resource/123)
{
"customer_name":"user_name", #String
"location":"000", #String
"age":30 #Int
"has_submitted_tax":true #Boolean
}
Как скрыть каждое свойство на основе ролей.
Подход 1:
Скрытие узла, к которому пользователь не должен обращаться
Проблема: это нарушит структуру ответа. Клиент может сломаться, так как ожидаемый узел будет пропущен.
Подход 2:
Возвращает null для этого узла.
Проблема: это нарушит тип данных ответа. Поскольку «логический» узел будет иметь нулевое значение.
Подход 3:
Возвращает значение по умолчанию для этого узла.
Проблема: Здесь узел будет иметь некоторое значение, где существует равная вероятность того, что фактическое значение будет возвращено для узла (значение по умолчанию является фактическим значением).