2016-12-21 9 views
2

Я использую Spring Data Rest. Я могу получить доступ к ресурсу из командной строки с помощью httpie с:Зачем мне нужна косая черта для корневого URI в Spring Data Rest?

http :8080/myapp/books 

но если я пытаюсь получить доступ к корневому URI

http :8080/myapp 

Я получаю 302 redirection:

HTTP/1.1 302 
Date: Wed, 21 Dec 2016 13:30:57 GMT 
Location: http://localhost:8080/myapp/ 
Transfer-Encoding: chunked 

Тестирования это url в Firefox перенаправляет меня на http://localhost:8080/myapp/ и правильно отображает список ресурсов. Если я добавлю косые черты с httpie:

http :8080/myapp/ 

Получаю список ресурсов. Почему я должен добавить трейлинг-косую черту, чтобы избежать перенаправления? Может ли кто-нибудь объяснить мне логику этого поведения?

P.S .: Я запускаю приложение с Spring Boot, от STS.

ответ

0

Я думаю, что ответ Если добавить отставая / будет пониматься как группы ресурсов, но без этого задним / мы не можем сказать, что, может быть последняя часть URL myapp идентификатор ресурса, так это необходимо сначала проверить ресурс с идентификатором myapp, если он не существует, тогда он возьмет его как набор ресурсов/группу и перенаправит, добавив /. / указывает, что результатом будет группа, но без косой черты она будет считаться ресурсом с идентификатором. Пример. users/user выборка пользователя с идентификатором user. users/ выборки пользователей. Поэтому он сначала проверяет идентификатор, если он не нашел никакого ресурса, а затем добавляет / и перенаправляет.

Для получения дополнительной информации перейдите по ссылке https://softwareengineering.stackexchange.com/questions/186959/trailing-slash-in-restful-api