У меня есть веб-приложение Spring Boot / Kotlin и контроллер, который принимает параметры запроса.
Вот мой метод контроллера:
import org.springframework.web.bind.annotation.GetMapping
import org.springframework.web.bind.annotation.ResponseBody
import javax.ws.rs.Produces
import javax.ws.rs.QueryParam
...
@GetMapping("/items")
@ResponseBody
@Produces(MediaType.APPLICATION_JSON_VALUE)
fun getItems(@QueryParam("n") count: Int? = null): Collection<MyItem> {
return myItemService.list(count)
}
Следующий cURL приводит к нулю count
параметр:
curl http://localhost:8080/items?n=25
Вместо этого Spring Boot всегда использует имя переменной в качестве значения параметра запроса:
curl http://localhost:8080/items?count=25
Что дает? Это ошибка в Spring Boot, или команда Spring преднамеренно проигнорировала документацию о том, как @QueryParam
должен работать, и решила использовать имя переменной вместо значения аннотации?