В последние несколько недель я сталкиваюсь с вещами, которые помогают мне лучше понять REST.
На работе у нас возникают проблемы с доступом к некоторым остальным api-ресурсам, который имеет довольно сложный доступ, поэтому мне было интересно, может ли кто-нибудь помочь мне понять, если / что мы делаем неправильно и как правильно поступить?
Итак, проблема в том, что у нас есть конечная точка для получения всех заказов. например / orders эта конечная точка имеет нумерацию страниц, фильтры и т. д., эта конечная точка получит список заказов.
У нас есть два основных типа пользователей (администратор и учетная запись).
Если вы являетесь администратором, вы можете видеть все заказы, если вы являетесь пользователем учетной записи, это становится немного сложнее, потому что пользователи учетной записи могут видеть заказы на основе набора разрешений.
Таким образом, по умолчанию пользователь аккаунта может видеть все размещенные им заказы. Они также смогут видеть любые заказы, которые у них есть для них. (поэтому это различие заключается в том, что заказы размещаются пользователем, но могут быть для другого. Например, я мог бы заказать что-то для другого пользователя).
Благодаря тому, что приложение разработано, пользователи могут видеть заказы и для других филиалов, например, репортер филиала, который обрабатывает заказы из всех филиалов, проверяет отчеты и т. Д.
Так что примером для всего этого будет:
если вы являетесь администратором, вы видите все заказы по умолчанию, если вы являетесь пользователем учетной записи и имеете разрешения для филиала x и y, вы увидите все заказы для x & y, а также любые заказы, сделанные вами самостоятельно.
Не нарушен ли здесь дизайн домена? Это то, что мешает мне увидеть выполнимое решение?
Я немного искал контексты пользователей, чтобы можно было немного разделить некоторые проблемы. Например, разные пользователи по-разному видят разные ресурсы. Таким образом, чтобы не сделать один размер подходящим для всех решений (что это определенно), вы должны построить 3 apis. Если бы я это сделал, я бы точно мог отделить админа от аккаунта. Но я не знаю, что делать со сложностью аккаунтов.
![enter image description here](https://i.stack.imgur.com/DdB3o.png)
У меня есть подозрение, что ключ к этому связан с удалением этих разрешений, извлеченных из базы данных, и перемещением их в разрешения, но я не уверен, как можно обрабатывать динамические разрешения.
Извините, если многое из этого напыщенное или не имеет смысла. Буду признателен за любую помощь, даже если это поможет мне выбрать правильный путь.
Как я уже сказал, я пытался понять, как настроить REST, одновременно пытаясь забыть о базовой базе данных, но проблема как чокнутая, так как это ставит меня в тупик.