Запросите подресурсы для всех основных ресурсов в REST - PullRequest
0 голосов
/ 16 февраля 2020

Я разрабатываю новый REST API

Допустим, у нас есть учетная запись, и у нее может быть более 1 пользователя. Информация об учетной записи передается в заголовке для аутентификации и авторизации. Итак, первый уровень здесь - пользователи. У пользователей может быть много устройств, и у каждого устройства может быть много конфигураций. API-интерфейсы должны быть такими, чтобы можно было запрашивать все конфигурации для всех устройств для всех пользователей в учетной записи. UserId deviceId и configurationId являются глобально уникальными и могут быть идентифицированы без обращения к их родителю. Таким образом, чтобы получить все конфигурации в учетной записи, что является правильным API. Также предостережение в том, что я не хочу слишком много звонков в систему

  1. / v1 / configurations
  2. / v1 / users / {userId} / devices / {deviceId} / конфигурации
  3. / v1 / пользователи / устройства / конфигурации

В первом случае информация об иерархии теряется.

Для 2) можно передать '*' в указать всех пользователей или все устройства в параметрах userId и deviceId. Является ли это даже правильным подходом к API отдыха.

Неужели 3) выглядит правильно.

Есть ли другие варианты? Моя цель - сохранить иерархическую структуру, но также хочу предоставить возможность запроса, как описано выше. Или сплющивает единственный вариант здесь. Также мне нужно указать все это в swagger

Кроме того, в моих операциях get будет много вариантов фильтрации. Фильтры могут быть на любом из ресурсов или подресурсов.

...