Spring Data Rest Frontend глубокая связь - PullRequest
0 голосов
/ 12 декабря 2018

Так что я уже некоторое время борюсь с этим вопросом:

Как обрабатывать детали страницы или глубокие ссылки на веб-интерфейсе.

Итак, скажем, мы получили конечную точку постраничной коллекции с пользовательскими сущностями в ней и приложение React, использующее конечную точку.Поток будет, пользователь аутентифицируется, получает коллекции, клики по элементу и либо:

  1. Перенаправлен на новый URL-адрес, скажем: webapp.com/users/userid
  2. Модальныйоткроется с информацией о пользователе.

Скажем, у нас есть сценарий, когда два человека работают с веб-приложением, Человек 1 хочет поделиться ссылкой с Человеком 2. Человек 2 должен сделать некоторые обновления для конкретного пользователя,который определяется по ссылке.Ссылка должна выглядеть примерно так: https://www.webapp.com/users/{slug или id} В варианте 2 эта функция не отображается.С помощью Варианта 1 мы получили возможность выставить идентификаторы в ответе, чтобы идентифицировать ресурс, который может работать, но нам все равно нужно было бы жестко закодировать URL, поскольку метод findById не экспортируется в качестве шаблона Uri.Итак, мое решение было бы добавить слаг для ресурсов, реализовать метод поиска с помощью слагов, а затем получить пользователя, если он найден, по его собственной ссылке.Звучит как хорошее решение для меня, но с другой стороны, мне нужно было бы добавить дополнительный идентификатор внешнего интерфейса (slug здесь), который также должен быть уникальным, для модели базы данных.

Так как жеВы, ребята, решаете проблему, подобную этой, или есть кто-то, кто использует пружинные данные таким образом или в производственном режиме, где у вас есть подобные ситуации?

Следует упомянуть, что это не основная проблема с данными по весне, а скорее с самими hateoas.

заранее спасибо Florian

1 Ответ

0 голосов
/ 14 декабря 2018

Вам не нужно жестко задавать шаблон URL.Остальные данные Spring будут генерировать ссылки для каждого ресурса.

Вы можете ссылаться на него из внешнего интерфейса в некотором формате, например: {your_user_object}._links.self.href

...