URL со ссылкой на объект из ответа HATEOAS REST в AngularJS

0

Я использую аннотацию @RepositoryRestResource, чтобы выставить Spring JPA Data в качестве успокоительной службы. Он отлично работает. Однако я борюсь с ссылкой на конкретный объект в угловом приложении.

Как известно, Spring Data Rest не сериализует @Id объекта, но ответ HAL содержит ссылки на объекты (_links.self, _embedded.projects []._ links.self), как в следующем примере:

{
    "_links": {
        "self": {
            "href": "http://localhost:8080/api/projects{?page,size,sort}",
            "templated": true
        }
    },
    "_embedded": {
        "projects": [
            {
                "name": "Sample Project",
                "description": "lorem ipsum",
                "_links": {
                    "self": {
                        "href": "http://localhost:8080/api/projects/1f888ada-2c90-48bc-abbe-762d27842124"
                    }
                }
            },
...

Мое угловое приложение требует указать ссылку на конкретный объект проекта в URL-адресе, например http://localhost/angular-app/#/projects/ {id}. Я не думаю, что использование href - хорошая идея. UUID (@Id) кажется лучше, но явно не указан как поле. Это точка, которую я застрял. После прочтения тонны статей я придумал 2 идеи, но я не считаю ни один из них идеальным:

Идея 1: Включить явную сериализацию поля @Id и просто использовать ее для ссылки на объект.
Предостережение: выставлять базы данных для внутренних интерфейсов.

Идея 2:
Держите поле @Id внутренним и создайте дополнительный поле "бизнес-идентификатор", которое можно использовать для идентификации определенного объекта.
Предостережение: дополнительное поле в таблице (пустое пространство).

Буду признателен за ваше замечание по этому поводу. Может быть, я просто излишне сдержан, чтобы реализовать любую из представленных идей, может быть, лучше.

Теги:
angular-ui-router
spring-data-rest

1 ответ

1

Чтобы дать вам другой вариант, есть специальная оболочка для Углового + Spring Data Rest, которая, вероятно, поможет вам:

https://github.com/guylabs/angular-spring-data-rest

  • 0
    Спасибо! Я уже проверил это, но не дал мне никаких указателей. Демонстрация не охватывает мой сценарий - здесь есть список категорий, но я бы хотел видеть ссылку на вложенное представление с элементами для определенной категории. Требуется передать в URL либо ссылку на категорию (т. Е. Localhost: 8080 / rest / Categories / 1 ), либо идентификатор категории (1). Последнее для меня намного чище, но пока объект категории не имеет явно указанного поля id, у меня нет средств его получить.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню