Я хотел бы создать URI из Spring UriTemplate, где последняя переменная uri является необязательной:
new UriTemplate("/test/{id}").expand("1") // OK
должен быть расширен до /test/1
, тогда как
new UriTemplate("/test/{id}").expand() // fails
должен просто разверните до /test/
.
К сожалению, я получаю java.lang.IllegalArgumentException: Not enough variable values available to expand 'id'
во втором случае.
Есть ли способ сообщить Spring, что переменная uri является необязательной?
ОБНОВЛЕНИЕ
Просто передача null
не работает в моем случае, потому что расширение шаблона происходит внутри небольшого базового класса библиотеки, где я не знаю точного Шаблон URI и количество переменных URI заранее.
(упрощенный) вариант использования выглядит следующим образом:
void post(Object... uriVars) {
var url = new UriTemplate(template()).expand().toString();
// do stuff with the url
}
protected abstract template();