Я пытаюсь захватить каждый сегмент пути URL в AkkaHTTP с Java.
Вот мой код:
public Route routes() {
return route(pathPrefix("users", () ->
route(
getOrPostUsers(),
path(PathMatchers.segment(), name -> route(
getUser(name),
deleteUser(name),
path(PathMatchers.segment(), countryOfResidence -> route(
getUser(name, countryOfResidence),
deleteUser(name, countryOfResidence)
))
)
)
)
));
}
Итак, как вы можете видеть, я пытаюсьзахватить первый сегмент пути URL-адреса и сохранить его как name
, а второй сегмент пути URL-адреса и сохранить его как countryOfResidence
.Пример URL-адреса для этого будет выглядеть примерно так:
localhost:8080/users/ian/usa
Если пользователь вводит только localhost:8080/users/ian
, я хочу направить к версии функции getUser () или deleteUser ()в зависимости от типа HTTP-запроса, который принимает только имя.Если пользователь вводит более длинный URL, как указано выше, я бы хотел вызвать версии getUser () или deleteUser (), которые принимают два параметра.
Всякий раз, когда я запускаю приведенный выше код, PathMatcher дляимя работает отлично.Проблема возникает, когда я запускаю PathMatcher для name и countryOfResidence.Код в этих маршрутах никогда не выполняется, и сервер не возвращает JSON.