Spring Data Rest с URL формата / foo / {id} / bar - PullRequest
1 голос
/ 25 апреля 2019

Чтобы соответствовать нашим внутренним стандартам, у нас есть URL-адреса в формате

/RESOURCE/{id}/COMPONENT

, попытка сделать что-то вроде

@RestResource(path = "/RESOURCE/{id}/COMPONENT")
public Optional<Resource> findById(long id);

не работает (она принимает запросы на/RESOURCE/{ID} хотя).Есть ли способ сделать эту работу?

1 Ответ

0 голосов
/ 26 апреля 2019

Как я понял из документации по остальным данным пружины , это кажется невозможным.

Вы можете сделать что-то подобное, назвать это http://localhost:8080/users/search/RESOURCE?id=1

@RestResource(path = "/RESOURCE")
public Optional<Resource> findById(@Param("id")long id);

Однако, если вы будете использовать такой URL @RestResource(path = "/RESOURCE/{id}/COMPONENT"), а затем он вернет

{
"_links": {
    "findById": {
        "href": "http://localhost:8080/users/search/RESOURCE/%7Bid%7D/COMPONENT{?id}",
        "templated": true
    },
    "self": {
        "href": "http://localhost:8080/users/search"
    }
 }
}

Как вы можете видеть отсюда, Spring не может разрешить URL, и это вызывает проблему с недопустимым символом.Я понимаю, что вы пытаетесь использовать rest api design, но в этой ситуации это не представляется возможным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...