scorpion-ds
Новичок
Как лучше фильтровать данные, связанные с текущим пользователем?
- Согласно передаваемым фильтрам, когда фронт сам выбирает какие данные ему нужны, в таком случае бек обеспечивает блокировку только отдельных сущностей, если пользователь не имеет права на доступ к ней. Код на беке проще, на фронте сложней (фронт выбирает согласно роли, какие данные можно запрашивать), один endpouint для списка можно использовать универсально для разных целей.
- Согласно роли другими словами на основе информации о текущем пользователе, бек выводит только, то что он может видеть. На беке код сложней, могут понадобится отдельные endpoint-ы для получения один и тех же сущностей для разных обстоятельств.
С первым вариантом столкнулся впервые и мне он понравился, но не все фронт разработчики довольны таким подходом.
Проект с GraphQL это делает первый вариант еще более интересным, так как проще обеспечивать изолированность отдельных сущностей и в них обеспечивать проверку на доступ, в случае если доступа нет в списке будет null на месте недоступного объекта, в errors ошибка с пояснение что не так.
- Согласно передаваемым фильтрам, когда фронт сам выбирает какие данные ему нужны, в таком случае бек обеспечивает блокировку только отдельных сущностей, если пользователь не имеет права на доступ к ней. Код на беке проще, на фронте сложней (фронт выбирает согласно роли, какие данные можно запрашивать), один endpouint для списка можно использовать универсально для разных целей.
- Согласно роли другими словами на основе информации о текущем пользователе, бек выводит только, то что он может видеть. На беке код сложней, могут понадобится отдельные endpoint-ы для получения один и тех же сущностей для разных обстоятельств.
С первым вариантом столкнулся впервые и мне он понравился, но не все фронт разработчики довольны таким подходом.
Проект с GraphQL это делает первый вариант еще более интересным, так как проще обеспечивать изолированность отдельных сущностей и в них обеспечивать проверку на доступ, в случае если доступа нет в списке будет null на месте недоступного объекта, в errors ошибка с пояснение что не так.