В настоящее время я работаю над REST API, в котором мы традиционно указывали, какие поля являются обязательными, а какие необязательными в ответе или DTO. Это было несложно, поскольку каждая конечная точка имела фиксированный набор обязательных и необязательных полей.
Теперь мы представляем управление доступом на основе атрибутов или ролей (RBAC) или управление доступом по атрибутам (ABAC). ) на определенных конечных точках, и этот подход больше не работает. Например. Каждая роль может иметь свой набор обязательных и необязательных полей, что усложняет поддержание четких и последовательных ответов и DTO.
Например:
У нас есть 3 атрибута в ответе a,b,c
a и c являются обязательными, а b необязательным
Роль A позволяет видеть атрибут a, b, но не c.
Роль B позволяет видеть атрибут c, b, но не a.
Должны ли все атрибуты быть необязательными?
Кроме того, в этом примере отсутствует/нулевой/необязательный параметр семантически то же самое в ответе.
Мой вопрос: каковы наилучшие методы управления доступом в REST API, где обязательные и необязательные атрибуты могут различаться в зависимости от правил доступа?
Как мне обеспечить понятную и удобную для пользователя документацию по API+ответы+классы DTO в таких условиях?
Будем очень признательны за любые идеи или примеры из вашего опыта!
Подробнее здесь: https://stackoverflow.com/questions/787 ... attributes