#java #spring #spring-boot #spring-mvc #swagger
Вопрос:
Я столкнулся с проблемой, используя Swagger и Spring Boot. У меня есть такой метод:
@ApiOperation(value = "Returns product of specified id")
@GetMapping("/{id}")
private ProductInShop getProduct(@ApiParam(name = "Product id", value = "Id of the product you want to get") @PathVariable String id) {
return productService.findById(id);
}
Эта операция очень хорошо работает в Postman, и когда я вызываю GET
метод по своему пути и указываю идентификатор, я получаю необходимый продукт. Но со свэггером это не работает. Я попытался выполнить отладку и заметил, что при этой операции идентификатор вызова '{id}'
получает значение, а не идентификатор продукта. Как я могу решить эту проблему и сделать путь изменяемым, чтобы его можно было правильно выбрать?
Ответ №1:
Проблема может быть связана с @ApiParam
name
атрибутом: либо избавьтесь от него:
@ApiOperation(value = "Returns product of specified id")
@GetMapping("/{id}")
private ProductInShop getProduct(@ApiParam(value = "Id of the product you want to get") @PathVariable String id) {
return productService.findById(id);
}
Или укажите соответствующее значение:
@ApiOperation(value = "Returns product of specified id")
@GetMapping("/{id}")
private ProductInShop getProduct(@ApiParam(name = "id", value = "Id of the product you want to get") @PathVariable String id) {
return productService.findById(id);
}